ExTwitter (extwitter v0.14.0) View Source
Provides access interfaces for the Twitter API.
Link to this section Summary
Functions
POST oauth/access_token
POST lists/members/create_all
GET oauth/authenticate Returns the URL you should redirect the user to for twitter sign-in
GET oauth/authenticate Returns the URL you should redirect the user to for twitter sign-in
GET oauth/authorize
GET oauth/authorize Returns the URL you should redirect the user to for 3-legged authorization
POST blocks/create
Returns current OAuth configuration settings for accessing twitter server.
Provides OAuth configuration settings for accessing twitter server.
Provides OAuth configuration settings for accessing twitter server.
POST favorites/create
POST lists/create
POST direct_messages/destroy/:id
POST direct_messages/destroy/:id
POST favorites/destroy
POST lists/destroy
POST statuses/destroy/:id
POST statuses/destroy/:id
GET direct_messages/show/:id
GET direct_messages
GET direct_messages
GET favorites/list
GET favorites/list
POST friendships/create
POST friendships/create
GET followers/ids
GET followers/ids
GET followers/list
GET followers/list
GET friends/ids
GET friends/ids
GET friends/list
GET friends/list
GET friendships/lookup
GET friendships/lookup
GET geo/search
GET geo/search
GET statuses/home_timeline
GET statuses/home_timeline
GET lists/members
GET lists/members
GET lists/members
GET lists/memberships
GET lists/memberships
GET lists/subscribers
GET lists/subscribers
GET lists/subscribers
GET lists/statuses
GET lists/statuses
GET lists/statuses
GET lists/list
GET lists/list
GET statuses/lookup
GET statuses/lookup
GET statuses/mentions_timeline
GET statuses/mentions_timeline
POST direct_messages/new
GET application/rate_limit_status
GET application/rate_limit_status
Provides general Twitter API access interface.
Provides general Twitter API access interface.
POST oauth/request_token
POST oauth/request_token
POST statuses/retweet/:id
POST statuses/retweet/:id
GET statuses/retweeters/ids
GET statuses/retweeters/ids
GET statuses/retweets/:id
GET statuses/retweets/:id
GET statuses/retweets_of_me
GET statuses/retweets_of_me
GET geo/reverse_geocode
GET geo/reverse_geocode
GET search/tweets
GET search/tweets
GET search/tweets
GET direct_messages/sent
GET direct_messages/sent
GET statuses/show/:id
GET statuses/show/:id
An interface to control the stream.
An interface to control the stream.
POST statuses/filter
POST statuses/filter
GET statuses/sample
GET statuses/sample
GET user
GET trends/place
GET trends/place
POST blocks/destroy
POST friendships/destroy
POST statuses/unretweet/:id
POST statuses/unretweet/:id
POST statuses/update
POST statuses/update
POST upload.twitter.com/1.1/media/upload (INIT/APPEND/FINALIZE) POST statuses/update
POST upload.twitter.com/1.1/media/upload (INIT/APPEND/FINALIZE) POST statuses/update
POST media/upload POST statuses/update
POST media/upload POST statuses/update
Chunk upload media and return media_id. POST media/upload (INIT) POST media/upload (APPEND) POST media/upload (FINALIZE)
GET users/show
GET users/show
GET users/lookup
GET users/lookup
GET users/profile_banner
GET users/search
GET users/search
GET statuses/user_timeline
GET statuses/user_timeline
GET account/verify_credentials
Link to this section Functions
POST oauth/access_token
Examples
ExTwitter.access_token("OAUTH_VERIFIER", "ACCESS_TOKEN", "ACCESS_TOKEN_SECRET")
Reference
https://dev.twitter.com/oauth/reference/post/oauth/access_token https://dev.twitter.com/web/sign-in/implementing
POST lists/members/create_all
Examples
ExTwitter.add_list_members(list_id, members)
ExTwitter.add_list_members(list_id, member_ids)
ExTwitter.add_list_members([list_id: list_id, user_id: member_ids])
Reference
GET oauth/authenticate Returns the URL you should redirect the user to for twitter sign-in
Examples
token = ExTwitter.request_token
ExTwitter.authenticate_url(token.oauth_token)
Reference
https://dev.twitter.com/oauth/reference/get/oauth/authenticate https://dev.twitter.com/web/sign-in/implementing
GET oauth/authenticate Returns the URL you should redirect the user to for twitter sign-in
Examples
token = ExTwitter.request_token
ExTwitter.authenticate_url(token.oauth_token, %{force_login: true})
Reference
https://dev.twitter.com/oauth/reference/get/oauth/authenticate https://dev.twitter.com/web/sign-in/implementing
GET oauth/authorize
Examples
token = ExTwitter.request_token
ExTwitter.authorize_url(token.oauth_token)
Returns the URL you should redirect the user to for 3-legged authorization
GET oauth/authorize Returns the URL you should redirect the user to for 3-legged authorization
Examples
token = ExTwitter.request_token
ExTwitter.authorize_url(token.oauth_token, %{force_login: true})
Reference
https://dev.twitter.com/oauth/reference/get/oauth/authorize https://dev.twitter.com/oauth/3-legged https://dev.twitter.com/web/sign-in/implementing
POST blocks/create
Examples
ExTwitter.block("twitter")
ExTwitter.block(783214)
Reference
Returns current OAuth configuration settings for accessing twitter server.
Provides OAuth configuration settings for accessing twitter server.
The specified configuration applies globally. Use ExTwitter.configure/2
for setting different configurations on each processes.
Examples
ExTwitter.configure(
consumer_key: System.get_env("TWITTER_CONSUMER_KEY"),
consumer_secret: System.get_env("TWITTER_CONSUMER_SECRET"),
access_token: System.get_env("TWITTER_ACCESS_TOKEN"),
access_token_secret: System.get_env("TWITTER_ACCESS_SECRET")
)
Provides OAuth configuration settings for accessing twitter server.
Options
The scope
can have one of the following values.
:global
- configuration is shared for all processes.:process
- configuration is isolated for each process.
Examples
ExTwitter.configure(
:process,
consumer_key: System.get_env("TWITTER_CONSUMER_KEY"),
consumer_secret: System.get_env("TWITTER_CONSUMER_SECRET"),
access_token: System.get_env("TWITTER_ACCESS_TOKEN"),
access_token_secret: System.get_env("TWITTER_ACCESS_SECRET")
)
POST favorites/create
Reference
https://dev.twitter.com/rest/reference/post/favorites/create
POST lists/create
Examples
ExTwitter.create_list("new list")
ExTwitter.create_list([name: "new list"])
Reference
POST direct_messages/destroy/:id
Examples
ExTwitter.destroy_direct_message(12345)
Reference
https://dev.twitter.com/rest/reference/post/direct_messages/destroy
POST direct_messages/destroy/:id
Examples
ExTwitter.destroy_direct_message(12345, include_entities: false)
Reference
https://dev.twitter.com/rest/reference/post/direct_messages/destroy
POST favorites/destroy
Reference
https://dev.twitter.com/rest/reference/post/favorites/destroy
POST lists/destroy
Examples
ExTwitter.destroy_list("new list")
ExTwitter.destroy_list([name: "new list"])
Reference
POST statuses/destroy/:id
Examples
ExTwitter.destroy_status(446328507694845952)
Reference
https://dev.twitter.com/rest/reference/post/statuses/destroy/:id
POST statuses/destroy/:id
Examples
ExTwitter.destroy_status(446328507694845952, trim_user: true)
Reference
https://dev.twitter.com/rest/reference/post/statuses/destroy/:id
GET direct_messages/show/:id
Examples
ExTwitter.direct_message(446328507694845952)
Reference
https://dev.twitter.com/rest/reference/get/direct_messages/show
GET direct_messages
Examples
ExTwitter.direct_messages
Reference
GET direct_messages
Examples
ExTwitter.direct_messages(count: 1)
Reference
GET favorites/list
Reference
GET favorites/list
Examples
ExTwitter.favorites(screen_name: "twitter", count: 1)
Reference
POST friendships/create
Examples
ExTwitter.follow("twitter")
ExTwitter.follow(783214)
Reference
https://dev.twitter.com/rest/reference/post/friendships/create
POST friendships/create
Examples
ExTwitter.follow("twitter", follow: true)
ExTwitter.follow(783214, follow: true)
Reference
https://dev.twitter.com/rest/reference/post/friendships/create
GET followers/ids
Specify one of the screen_name
, user_id
or options
in the argument.
Examples
ExTwitter.follower_ids("twitter")
ExTwitter.follower_ids(783214)
ExTwitter.follower_ids(count: 1)
Reference
GET followers/ids
Examples
ExTwitter.follower_ids("twitter", count: 1)
ExTwitter.follower_ids(783214, count: 1)
Reference
GET followers/list
Specify one of the screen_name
, user_id
or options
in the argument.
Examples
ExTwitter.followers("twitter")
ExTwitter.followers(783214)
ExTwitter.followers(count: 1)
Reference
GET followers/list
Examples
ExTwitter.followers("twitter", count: 1)
ExTwitter.followers(783214, count: 1)
Reference
GET friends/ids
Specify one of the screen_name
, user_id
or options
in the argument.
Examples
ExTwitter.friend_ids("twitter")
ExTwitter.friend_ids(783214)
ExTwitter.friend_ids(count: 1)
Reference
GET friends/ids
Examples
ExTwitter.friend_ids("twitter", count: 1)
ExTwitter.friend_ids(783214, count: 1)
Reference
GET friends/list
Specify one of the screen_name
, user_id
or options
in the argument.
Examples
ExTwitter.friends("twitter")
ExTwitter.friends(783214)
ExTwitter.friends(count: 1)
Reference
GET friends/list
Examples
ExTwitter.friends("twitter", count: 1)
ExTwitter.friends(783214, count: 1)
Reference
Specs
friends_lookup(String.t()) :: ExTwitter.Model.Relationship.t()
GET friendships/lookup
Examples
ExTwitter.friends_lookup("twitter_support")
Reference
https://dev.twitter.com/rest/reference/get/friendships/lookup
Specs
friends_lookup(String.t() | Integer, Keyword.t()) :: ExTwitter.Model.Relationship.t()
GET friendships/lookup
Examples
ExTwitter.friends_lookup("twitter_support")
Reference
https://dev.twitter.com/rest/reference/get/friendships/lookup
GET geo/search
Examples
ExTwitter.geo_search("new york")
Reference
GET geo/search
Examples
ExTwitter.geo_search("new york", max_results: 1)
Reference
GET statuses/home_timeline
Reference
https://dev.twitter.com/rest/reference/get/statuses/home_timeline
GET statuses/home_timeline
Examples
ExTwitter.home_timeline(count: 1)
Reference
https://dev.twitter.com/rest/reference/get/statuses/home_timeline
GET lists/members
Examples
ExTwitter.list_members(slug: "twitter-engineering", owner_screen_name: "twitter")
Reference
GET lists/members
Examples
ExTwitter.list_members("twitter-engineering", "twitter")
Reference
GET lists/members
Examples
ExTwitter.list_members("twitter-engineering", "twitter", count: 1)
Reference
GET lists/memberships
Reference
https://dev.twitter.com/rest/reference/get/lists/memberships
GET lists/memberships
Examples
ExTwitter.list_memberships(screen_name: "twitter", count: 2)
Reference
https://dev.twitter.com/rest/reference/get/lists/memberships
GET lists/subscribers
Examples
ExTwitter.list_subscribers(slug: "twitter-engineering", owner_screen_name: "twitter")
Reference
https://dev.twitter.com/rest/reference/get/lists/subscribers
GET lists/subscribers
Examples
ExTwitter.list_subscribers("twitter-engineering", "twitter")
Reference
https://dev.twitter.com/rest/reference/get/lists/subscribers
GET lists/subscribers
Examples
ExTwitter.list_subscribers("twitter-engineering", "twitter", count: 1)
Reference
https://dev.twitter.com/rest/reference/get/lists/subscribers
GET lists/statuses
Examples
ExTwitter.list_timeline(slug: "twitter-engineering", owner_screen_name: "twitter")
Reference
GET lists/statuses
Examples
ExTwitter.list_timeline("twitter-engineering", "twitter")
Reference
GET lists/statuses
Examples
ExTwitter.list_timeline("twitter-engineering", "twitter", count: 1)
Reference
GET lists/list
Examples
ExTwitter.lists("twitter")
ExTwitter.lists(783214)
Reference
GET lists/list
Examples
ExTwitter.lists("twitter", count: 1)
ExTwitter.lists(783214, count: 1)
Reference
GET statuses/lookup
Examples
ExTwitter.lookup_status("504692034473435136,502883389347622912")
Reference
GET statuses/lookup
Examples
ExTwitter.lookup_status("504692034473435136,502883389347622912", trim_user: true)
Reference
GET statuses/mentions_timeline
Reference
https://dev.twitter.com/rest/reference/get/statuses/mentions_timeline
GET statuses/mentions_timeline
Examples
ExTwitter.mentions_timeline(count: 1)
Reference
https://dev.twitter.com/rest/reference/get/statuses/mentions_timeline
POST direct_messages/new
Specify one of the screen name
, or user id
in first argument.
Examples
ExTwitter.new_direct_message("twitter", "Message text")
Reference
https://dev.twitter.com/rest/reference/post/direct_messages/new
GET application/rate_limit_status
Examples
status = ExTwitter.rate_limit_status
limit = status["resources"]["statuses"]["/statuses/home_timeline"]["remaining"]
Reference
https://dev.twitter.com/rest/reference/get/application/rate_limit_status
GET application/rate_limit_status
Examples
ExTwitter.rate_limit_status(resources: "statuses")
Reference
https://dev.twitter.com/rest/reference/get/application/rate_limit_status
Provides general Twitter API access interface.
This method simply returns parsed JSON in Map structure.
Examples
ExTwitter.request(:get, "1.1/statuses/home_timeline.json")
Provides general Twitter API access interface.
This method simply returns parsed JSON in Map structure.
Examples
ExTwitter.request(:get, "1.1/search/tweets.json", [q: "elixir", count: 1])
POST oauth/request_token
Examples
ExTwitter.request_token
Reference
https://dev.twitter.com/oauth/reference/post/oauth/request_token https://dev.twitter.com/web/sign-in/implementing
POST oauth/request_token
Examples
ExTwitter.request_token("http://myapp.com/twitter-callback")
Reference
https://dev.twitter.com/oauth/reference/post/oauth/request_token https://dev.twitter.com/web/sign-in/implementing
POST statuses/retweet/:id
Examples
ExTwitter.retweet(589095997340405760)
Reference
https://dev.twitter.com/rest/reference/post/statuses/retweet/:id
POST statuses/retweet/:id
Examples
ExTwitter.retweet(589095997340405760, trim_user: true)
Reference
https://dev.twitter.com/rest/reference/post/statuses/retweet/:id
GET statuses/retweeters/ids
Examples
ExTwitter.retweeter_ids(444144169058308096)
Reference
https://dev.twitter.com/rest/reference/get/statuses/retweeters/ids
GET statuses/retweeters/ids
Examples
ExTwitter.retweeter_ids(444144169058308096, stringify_ids: true)
Reference
https://dev.twitter.com/rest/reference/get/statuses/retweeters/ids
GET statuses/retweets/:id
Examples
ExTwitter.retweets(444144169058308096)
Reference
https://dev.twitter.com/rest/reference/get/statuses/retweets/:id
GET statuses/retweets/:id
Examples
ExTwitter.retweets(444144169058308096, count: 1)
Reference
https://dev.twitter.com/rest/reference/get/statuses/retweets/:id
GET statuses/retweets_of_me
Reference
https://dev.twitter.com/rest/reference/get/statuses/retweets_of_me
GET statuses/retweets_of_me
Examples
ExTwitter.retweets_of_me(count: 1)
Reference
https://dev.twitter.com/rest/reference/get/statuses/retweets_of_me
GET geo/reverse_geocode
Examples
ExTwitter.reverse_geocode(37.7821120598956, -122.400612831116)
Reference
https://dev.twitter.com/rest/reference/get/geo/reverse_geocode
GET geo/reverse_geocode
Examples
ExTwitter.reverse_geocode(37.7821120598956, -122.400612831116, max_results: 1)
Reference
https://dev.twitter.com/rest/reference/get/geo/reverse_geocode
GET search/tweets
Examples
ExTwitter.search("test")
Reference
GET search/tweets
Examples
ExTwitter.search("test", count: 1)
Reference
GET search/tweets
Examples
response = ExTwitter.search("pizza", [count: 100, search_metadata: true])
ExTwitter.search_next_page(response.metadata)
Reference
GET direct_messages/sent
Examples
ExTwitter.sent_direct_messages
Reference
https://dev.twitter.com/rest/reference/get/direct_messages/sent
GET direct_messages/sent
Examples
ExTwitter.sent_direct_messages(count: 1)
Reference
https://dev.twitter.com/rest/reference/get/direct_messages/sent
GET statuses/show/:id
Examples
ExTwitter.show(446328507694845952)
Reference
https://dev.twitter.com/rest/reference/get/statuses/show/:id
GET statuses/show/:id
Examples
ExTwitter.show(446328507694845952, trim_user: true)
Reference
https://dev.twitter.com/rest/reference/get/statuses/show/:id
An interface to control the stream.
This method is for controlling stream, and it doesn't make Twitter API call.
Options
The pid
is the process id where stream is being processed.
Examples
ExTwitter.stream_control(pid, :stop)
An interface to control the stream.
This method is for handling elixir's stream which can keep running infinitely. It doesn't make Twitter API call.
Options
The options
can have following values, in addition to the
Twitter API's parameter.
:receive_messages
- true/false flag whether to receive control messages in addition to normal tweets. default is false.
The pid
is the process id where stream is processed.
The timeout
is the maximum wait time (in milliseconds) to complete
the message handling.
Examples
ExTwitter.stream_control(pid, :stop, timeout: 50)
POST statuses/filter
Returns public statuses that match one or more filter predicates. This method returns the Stream that holds the list of tweets. Specify at least one of the [follow, track, locations] options.
Options
The options
can have following values, in addition to the
Twitter API's parameter.
:receive_messages
- true/false flag whether to receive control messages in addition to normal tweets. default is false.
Examples
ExTwitter.stream_filter(track: "apple")
Reference
https://dev.twitter.com/streaming/reference/post/statuses/filter
POST statuses/filter
Returns public statuses that match one or more filter predicates. This method returns the Stream that holds the list of tweets. Specify at least one of the [follow, track, locations] options.
Options
The options
can have following values, in addition to the
Twitter API's parameter.
:receive_messages
- true/false flag whether to receive control messages in addition to normal tweets. default is false.
The timeout is the maximum milliseconds to wait until receiving
next tweet. Specifying :infinity
makes it wait infinitely.
Examples
ExTwitter.stream_filter([track: "apple"], 60000)
Reference
https://dev.twitter.com/streaming/reference/post/statuses/filter
GET statuses/sample
Returns a small random sample of all public statuses. This method returns the Stream that holds the list of tweets.
Reference
https://dev.twitter.com/streaming/reference/get/statuses/sample
GET statuses/sample
Returns a small random sample of all public statuses. This method returns the Stream that holds the list of tweets.
Options
The options
can have following values, in addition to the
Twitter API's parameter.
:receive_messages
- true/false flag whether to receive control messages in addition to normal tweets. default is false.
Reference
https://dev.twitter.com/streaming/reference/get/statuses/sample
GET user
Returns timeline streaming for a user. This method returns the stream that holds the list of tweets.
Examples
ExTwitter.stream_user
Reference
GET trends/place
Examples
ExTwitter.trends(1)
Reference
GET trends/place
Examples
ExTwitter.trends(1, exclude: true)
Reference
POST blocks/destroy
Examples
ExTwitter.unblock("twitter")
ExTwitter.unblock(783214)
Reference
POST friendships/destroy
Examples
ExTwitter.unfollow("twitter")
ExTwitter.unfollow(783214)
Reference
https://dev.twitter.com/rest/reference/post/friendships/destroy
POST statuses/unretweet/:id
Examples
ExTwitter.unretweet(589095997340405760)
Reference
https://dev.twitter.com/rest/reference/post/statuses/unretweet/:id
POST statuses/unretweet/:id
Examples
ExTwitter.unretweet(589095997340405760, trim_user: true)
Reference
https://dev.twitter.com/rest/reference/post/statuses/unretweet/:id
POST statuses/update
Examples
ExTwitter.update("update sample")
Reference
POST statuses/update
Examples
ExTwitter.update("update sample", trim_user: true)
Reference
POST upload.twitter.com/1.1/media/upload (INIT/APPEND/FINALIZE) POST statuses/update
The default chunk size is 64kb (65,536 bytes). This can be adjusted via update_with_chunked_media/4
.
Examples
ExTwitter.update_with_chunked_media("tweet with chunked media", "/path/to/file.mp4", "video/mp4")
Reference
https://developer.twitter.com/en/docs/media/upload-media/overview
Note
Unlike update_with_media/3
, this supports the uploading of all Twitter-supported media types such as video files.
POST upload.twitter.com/1.1/media/upload (INIT/APPEND/FINALIZE) POST statuses/update
Chunk size (in bytes) can be configured via the :chunk_size
option. The default is 64kb (65,536 bytes).
Examples
ExTwitter.update_with_chunked_media("tweet with chunked media", "/path/to/file.mp4", "video/mp4", trim_user: true, chunk_size: 131_072)
Reference
https://developer.twitter.com/en/docs/media/upload-media/overview
Note
Unlike update_with_media/3
, this supports the uploading of all Twitter-supported media types such as video files.
POST media/upload POST statuses/update
Examples
image = File.read!("fixture/images/sample.png")
ExTwitter.update_with_media("tweet with media", image)
Reference
https://dev.twitter.com/rest/reference/post/media/upload https://dev.twitter.com/rest/media/uploading-media
Note
This API works only for images at the moment. (Video files which requires chunked upload is not supported yet).
POST media/upload POST statuses/update
Examples
image = File.read!("fixture/images/sample.png")
ExTwitter.update_with_media("tweet with media", image, trim_user: true)
Reference
https://dev.twitter.com/rest/reference/post/media/upload https://dev.twitter.com/rest/media/uploading-media
Note
This API works only for images at the moment. (Video files which requires chunked upload is not supported yet).
Chunk upload media and return media_id. POST media/upload (INIT) POST media/upload (APPEND) POST media/upload (FINALIZE)
Examples
media_id = upload_media("/tmp/image.png", "image/png") //chunk size defaults to 65536
media_id = upload_media("/tmp/image.png", "image/png", 32768)
GET users/show
Examples
ExTwitter.user("elixirlang")
ExTwitter.user(507309896)
Reference
GET users/show
Examples
ExTwitter.user("elixirlang", include_entities: false)
ExTwitter.user(507309896, include_entities: false)
Reference
GET users/lookup
Examples
ExTwitter.user_lookup("twitter")
ExTwitter.user_lookup(783214)
ExTwitter.user_lookup(screen_name: "twitter")
Reference
GET users/lookup
Examples
ExTwitter.user_lookup("twitter", include_entities: false)
ExTwitter.user_lookup(783214, include_entities: false)
ExTwitter.user_lookup(["twitter", "josevalim"], include_entities: false)
ExTwitter.user_lookup([783214, 10230812], include_entities: false)
Reference
GET users/profile_banner
Examples
ExTwitter.user_profile_banner(783214)
ExTwitter.user_profile_banner("twitter")
Reference
https://dev.twitter.com/rest/reference/get/users/profile_banner
GET users/search
Examples
ExTwitter.user_search("elixirlang")
Reference
GET users/search
Examples
ExTwitter.user_search("elixirlang", count: 1)
Reference
GET statuses/user_timeline
Reference
https://dev.twitter.com/rest/reference/get/statuses/user_timeline
GET statuses/user_timeline
Examples
ExTwitter.user_timeline(count: 1)
ExTwitter.user_timeline([screen_name: "josevalim", count: 12])
Reference
https://dev.twitter.com/rest/reference/get/statuses/user_timeline
GET account/verify_credentials
Examples
ExTwitter.verify_credentials
ExTwitter.verify_credentials(include_email: true)
Reference
https://dev.twitter.com/rest/reference/get/account/verify_credentials