directmessages.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package anaconda
  2. import (
  3. "net/url"
  4. "strconv"
  5. )
  6. func (a TwitterApi) GetDirectMessages(v url.Values) (messages []DirectMessage, err error) {
  7. response_ch := make(chan response)
  8. a.queryQueue <- query{a.baseUrl + "/direct_messages.json", v, &messages, _GET, response_ch}
  9. return messages, (<-response_ch).err
  10. }
  11. func (a TwitterApi) GetDirectMessagesSent(v url.Values) (messages []DirectMessage, err error) {
  12. response_ch := make(chan response)
  13. a.queryQueue <- query{a.baseUrl + "/direct_messages/sent.json", v, &messages, _GET, response_ch}
  14. return messages, (<-response_ch).err
  15. }
  16. func (a TwitterApi) GetDirectMessagesShow(v url.Values) (message DirectMessage, err error) {
  17. response_ch := make(chan response)
  18. a.queryQueue <- query{a.baseUrl + "/direct_messages/show.json", v, &message, _GET, response_ch}
  19. return message, (<-response_ch).err
  20. }
  21. // https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/new-message
  22. func (a TwitterApi) PostDMToScreenName(text, screenName string) (message DirectMessage, err error) {
  23. v := url.Values{}
  24. v.Set("screen_name", screenName)
  25. v.Set("text", text)
  26. return a.postDirectMessagesImpl(v)
  27. }
  28. // https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/new-message
  29. func (a TwitterApi) PostDMToUserId(text string, userId int64) (message DirectMessage, err error) {
  30. v := url.Values{}
  31. v.Set("user_id", strconv.FormatInt(userId, 10))
  32. v.Set("text", text)
  33. return a.postDirectMessagesImpl(v)
  34. }
  35. // DeleteDirectMessage will destroy (delete) the direct message with the specified ID.
  36. // https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/delete-message
  37. func (a TwitterApi) DeleteDirectMessage(id int64, includeEntities bool) (message DirectMessage, err error) {
  38. v := url.Values{}
  39. v.Set("id", strconv.FormatInt(id, 10))
  40. v.Set("include_entities", strconv.FormatBool(includeEntities))
  41. response_ch := make(chan response)
  42. a.queryQueue <- query{a.baseUrl + "/direct_messages/destroy.json", v, &message, _POST, response_ch}
  43. return message, (<-response_ch).err
  44. }
  45. func (a TwitterApi) postDirectMessagesImpl(v url.Values) (message DirectMessage, err error) {
  46. response_ch := make(chan response)
  47. a.queryQueue <- query{a.baseUrl + "/direct_messages/new.json", v, &message, _POST, response_ch}
  48. return message, (<-response_ch).err
  49. }