Class TwitterOAuth::Client
In: lib/twitter_oauth/client.rb
lib/twitter_oauth/search.rb
lib/twitter_oauth/lists.rb
lib/twitter_oauth/direct_messages.rb
lib/twitter_oauth/geo.rb
lib/twitter_oauth/utils.rb
lib/twitter_oauth/timeline.rb
lib/twitter_oauth/account.rb
lib/twitter_oauth/notifications.rb
lib/twitter_oauth/saved_searches.rb
lib/twitter_oauth/friendships.rb
lib/twitter_oauth/blocks.rb
lib/twitter_oauth/spam.rb
lib/twitter_oauth/favorites.rb
lib/twitter_oauth/status.rb
lib/twitter_oauth/trends.rb
lib/twitter_oauth/user.rb
Parent: Object

Methods

Constants

CRLF = "\r\n"

Public Class methods

[Source]

# File lib/twitter_oauth/client.rb, line 21
    def initialize(options = {})
      @consumer_key = options[:consumer_key]
      @consumer_secret = options[:consumer_secret]
      @token = options[:token]
      @secret = options[:secret]
      @proxy = options[:proxy]
    end

Public Instance methods

Add a member to a list. The authenticated user must own the list to be able to add members to it. Lists are limited to having 500 members.

[Source]

# File lib/twitter_oauth/lists.rb, line 60
    def add_member_to_list(user, list, member_id, options={})
      post("/#{user}/#{list}/members.json", options.merge(:id => member_id))
    end

Returns all pages of followers

[Source]

# File lib/twitter_oauth/user.rb, line 48
    def all_followers
      users = []
      cursor = "-1"
      while cursor != 0 do 
        json = get("/statuses/followers.json?cursor=#{cursor}")
        cursor = json["next_cursor"]
        users += json["users"]
      end
      users
    end

Returns all pages of friends

[Source]

# File lib/twitter_oauth/user.rb, line 22
    def all_friends
      users = []
      cursor = "-1"
      while cursor != 0 do 
        json = get("/statuses/friends.json?cursor=#{cursor}")
        cursor = json["next_cursor"]
        users += json["users"]
      end
      users
    end

[Source]

# File lib/twitter_oauth/client.rb, line 52
    def authentication_request_token(options={})
      consumer.options[:authorize_path] = '/oauth/authenticate'
      request_token(options)
    end

[Source]

# File lib/twitter_oauth/client.rb, line 29
    def authorize(token, secret, options = {})
      request_token = OAuth::RequestToken.new(
        consumer, token, secret
      )
      @access_token = request_token.get_access_token(options)
      @token = @access_token.token
      @secret = @access_token.secret
      @access_token
    end

Returns an HTTP 200 OK response code and a representation of the requesting user if authentication was successful; returns a 401 status code and an error message if not.

[Source]

# File lib/twitter_oauth/account.rb, line 6
    def authorized?
      oauth_response = access_token.get('/1/account/verify_credentials.json')
      return oauth_response.class == Net::HTTPOK
    end

Blocks the user specified in the ID parameter as the authenticating user. Destroys a friendship to the blocked user if it exists. Returns the blocked user in the requested format when successful.

[Source]

# File lib/twitter_oauth/blocks.rb, line 7
    def block(id)
      post("/blocks/create/#{id}.json")
    end

Returns if the authenticating user is blocking a target user.

[Source]

# File lib/twitter_oauth/blocks.rb, line 18
    def blocked?(id)
      get("/blocks/exists/#{id}.json")
    end

Returns an array of user objects that the authenticating user is blocking.

[Source]

# File lib/twitter_oauth/blocks.rb, line 23
    def blocking
      get("/blocks/blocking.json")
    end

Returns an array of numeric user ids the authenticating user is blocking.

[Source]

# File lib/twitter_oauth/blocks.rb, line 28
    def blocking_ids
      get("/blocks/blocking/ids.json")
    end

Creates a new list for the authenticated user. Accounts are limited to 20 lists.

[Source]

# File lib/twitter_oauth/lists.rb, line 9
    def create_list(user, list, options={})
      post("/#{user}/lists.json", options.merge(:name => list))
    end

Creates a saved search for the authenticated user.

[Source]

# File lib/twitter_oauth/saved_searches.rb, line 15
    def create_saved_search(query)
      post("/saved_searches/create.json", :query => query)
    end

Returns the current top 10 trending topics on Twitter.

[Source]

# File lib/twitter_oauth/search.rb, line 15
    def current_trends
      search_get("/trends/current.json")
    end

Returns the top 20 trending topics for each hour in a given day.

[Source]

# File lib/twitter_oauth/search.rb, line 20
    def daily_trends
      search_get("/trends/daily.json")
    end

Deletes the specified list. Must be owned by the authenticated user.

[Source]

# File lib/twitter_oauth/lists.rb, line 30
    def delete_list(user, list)
      delete("/#{user}/lists/#{list}.json")
    end

[Source]

# File lib/twitter_oauth/saved_searches.rb, line 19
    def delete_saved_search(search_id)
      post("/saved_searches/destroy/#{search_id}.json")
    end

Favorites the status specified in the ID parameter as the authenticating user. Returns the favorite status when successful.

[Source]

# File lib/twitter_oauth/favorites.rb, line 11
    def favorite(id)
      post("/favorites/create/#{id}.json")
    end

Returns the 20 most recent favorite statuses for the authenticating user or user specified by the ID parameter.

[Source]

# File lib/twitter_oauth/favorites.rb, line 5
    def favorites(page=1)
      get("/favorites.json?page=#{page}")
    end

Enables device notifications for updates from the specified user. Returns the specified user when successful.

[Source]

# File lib/twitter_oauth/notifications.rb, line 6
    def follow(id)
      post("/notifications/follow/#{id}.json")
    end

Returns the 100 last followers

[Source]

# File lib/twitter_oauth/user.rb, line 34
    def followers(page=1)
      return get("/statuses/followers.json?page=#{page}") if page == 1
      users = []
      cursor = "-1"
      page.times do 
        return [] if cursor == 0 
        json = get("/statuses/followers.json?cursor=#{cursor}")
        cursor = json["next_cursor"]
        users = json["users"]
      end
      users
    end

Returns an array of numeric IDs for every user following the specified user.

[Source]

# File lib/twitter_oauth/friendships.rb, line 11
    def followers_ids(options={})
      args = options.map{|k,v| "#{k}=#{v}"}.join('&')
      get("/followers/ids.json?#{args}")
    end

Allows the authenticating user to follow the specified user. Returns the befriended user when successful.

[Source]

# File lib/twitter_oauth/friendships.rb, line 17
    def friend(id)
      post("/friendships/create/#{id}.json")
    end

Returns the 100 last friends The page parameter is implemented for legacy reasons, but use of this is slow as passing page is no longer supported by the Twitter API as the use of cursors is now obligitory. It is recommended that you use all_friends instead

[Source]

# File lib/twitter_oauth/user.rb, line 8
    def friends(page=1)
      return get("/statuses/friends.json?page=#{page}") if page == 1
      users = []
      cursor = "-1"
      page.times do 
        return [] if cursor == 0 
        json = get("/statuses/friends.json?cursor=#{cursor}")
        cursor = json["next_cursor"]
        users = json["users"]
      end
      users
    end

Tests for the existence of friendship between two users. Will return true if user_a follows user_b, otherwise will return false. You are better off using get_friendship as it returns more extended information.

[Source]

# File lib/twitter_oauth/friendships.rb, line 28
    def friends?(a, b)
      oauth_response = access_token.get("/friendships/exists.json?user_a=#{a}&user_b=#{b}")
      oauth_response.body.strip == 'true'
    end

Returns an array of numeric IDs for every user the specified user is following.

[Source]

# File lib/twitter_oauth/friendships.rb, line 5
    def friends_ids(options={})
      args = options.map{|k,v| "#{k}=#{v}"}.join('&')
      get("/friends/ids.json?#{args}")
    end

Returns the 20 most recent statuses posted by the authenticating user and that user‘s friends.

[Source]

# File lib/twitter_oauth/timeline.rb, line 18
    def friends_timeline(options={})
      args = options.map{|k,v| "#{k}=#{v}"}.join('&')
      get("/statuses/friends_timeline.json?#{args}")
    end

Find out more details of a place that was returned from the geo/reverse_geocode method.

[Source]

# File lib/twitter_oauth/geo.rb, line 22
    def geo(id)
      get "/geo/id/#{id}.json"
    end

Search for places (cities and neighborhoods) that can be attached to a statuses/update. Given a latitude and a longitude pair, or an IP address, return a list of all the valid cities and neighborhoods that can be used as a place_id when updating a status.

[Source]

# File lib/twitter_oauth/geo.rb, line 15
    def geo_search(options={})
      options[:query] = URI.escape(options[:query]) if options[:query]
      args = options.map{|k,v| "#{k}=#{v}"}.join('&')
      get "/geo/search.json?#{args}"
    end

Returns detailed information about the relationship between two users.

[Source]

# File lib/twitter_oauth/friendships.rb, line 34
    def get_friendship(a, b)
      get("/friendships/show.json?source_screen_name=#{a}&target_screen_name=#{b}")
    end

Show the specified list. Private lists will only be shown if the authenticated user owns the specified list.

[Source]

# File lib/twitter_oauth/lists.rb, line 25
    def get_list(user, list)
      get("/#{user}/lists/#{list}.json")
    end

List the lists of the specified user. Private lists will be included if the authenticated user is the same as the user whose lists are being returned.

[Source]

# File lib/twitter_oauth/lists.rb, line 20
    def get_lists(user)
      get("/#{user}/lists.json")
    end

Check if a user is a member of the specified list.

[Source]

# File lib/twitter_oauth/lists.rb, line 71
    def get_member_of_list(user, list, member_id)
      get("/#{user}/#{list}/members/#{member_id}.json")
    end

Retrieve the data for a saved search owned by the authenticating user specified by the given id.

[Source]

# File lib/twitter_oauth/saved_searches.rb, line 10
    def get_saved_search(search_id)
      get("/saved_searches/show/#{search_id}.json")
    end

Check if the specified user is a subscriber of the specified list.

[Source]

# File lib/twitter_oauth/lists.rb, line 95
    def get_subscriber_of_list(user, list, subscriber_id)
      get("/#{user}/#{list}/subscribers/#{subscriber_id}.json")
    end

Returns the 20 most recent statuses, including retweets, posted by the authenticating user and that user‘s friends. This is the equivalent of /timeline/home on the Web.

[Source]

# File lib/twitter_oauth/timeline.rb, line 12
    def home_timeline(options={})
      args = options.map{|k,v| "#{k}=#{v}"}.join('&')
      get("/statuses/home_timeline.json?#{args}")
    end

Returns client info

[Source]

# File lib/twitter_oauth/account.rb, line 12
    def info
      get('/account/verify_credentials.json')
    end

Disables notifications for updates from the specified user to the authenticating user. Returns the specified user when successful.

[Source]

# File lib/twitter_oauth/notifications.rb, line 12
    def leave(id)
      post("/notifications/leave/#{id}.json")
    end

Returns the members of the specified list.

[Source]

# File lib/twitter_oauth/lists.rb, line 54
    def list_members(user, list)
      get("/#{user}/#{list}/members.json")
    end

List the lists the specified user has been added to.

[Source]

# File lib/twitter_oauth/lists.rb, line 40
    def list_memberships(user)
      get("/#{user}/lists/memberships.json")
    end

Show tweet timeline for members of the specified list.

[Source]

# File lib/twitter_oauth/lists.rb, line 35
    def list_statuses(user, list)
      get("/#{user}/lists/#{list}/statuses.json")
    end

Returns the subscribers of the specified list.

[Source]

# File lib/twitter_oauth/lists.rb, line 80
    def list_subscribers(user, list)
      get("/#{user}/#{list}/subscribers.json")
    end

List the lists the specified user follows.

[Source]

# File lib/twitter_oauth/lists.rb, line 45
    def list_subscriptions(user)
      get("/#{user}/lists/subscriptions.json")
    end

Returns the 20 most recent @replies (status updates prefixed with @username) for the authenticating user.

[Source]

# File lib/twitter_oauth/timeline.rb, line 31
    def mentions(options={})
      args = options.map{|k,v| "#{k}=#{v}"}.join('&')
      get("/statuses/mentions.json?#{args}")
    end

Sends a new direct message to the specified user from the authenticating user.

[Source]

# File lib/twitter_oauth/direct_messages.rb, line 19
    def message(user, text)
      post('/direct_messages/new.json', :user => user, :text => text)
    end

Destroys the direct message specified in the required ID parameter.

[Source]

# File lib/twitter_oauth/direct_messages.rb, line 24
    def message_destroy(id)
      post("/direct_messages/destroy/#{id}.json")
    end

Return the most recent direct messages sent to the authenticating user. By default, returns the last 20. See apiwiki.twitter.com/Twitter-REST-API-Method:-direct_messages for other options

[Source]

# File lib/twitter_oauth/direct_messages.rb, line 7
    def messages(options={})
      args = options.map{|k,v| "#{k}=#{v}"}.join('&')
      get("/direct_messages.json?#{args}")
    end

Returns the 20 most recent statuses from non-protected users who have set a custom user icon.

[Source]

# File lib/twitter_oauth/timeline.rb, line 5
    def public_timeline(options={})
      args = options.map{|k,v| "#{k}=#{v}"}.join('&')
      get("/statuses/public_timeline.json?#{args}")
    end

Returns the remaining number of API requests available to the requesting user before the API limit is reached for the current hour.

[Source]

# File lib/twitter_oauth/account.rb, line 17
    def rate_limit_status
      get('/account/rate_limit_status.json')
    end

Removes the specified member from the list. The authenticated user must be the list‘s owner to remove members from the list.

[Source]

# File lib/twitter_oauth/lists.rb, line 66
    def remove_member_from_list(user, list, member_id)
      delete("/#{user}/#{list}/members.json?id=#{member_id}")
    end
replies(options={})

Alias for mentions

The user specified in the id is blocked by the authenticated user and reported as a spammer.

[Source]

# File lib/twitter_oauth/spam.rb, line 5
    def report_spam(user)
      post("/report_spam.json", :id => user)
    end

[Source]

# File lib/twitter_oauth/client.rb, line 48
    def request_token(options={})
      consumer.get_request_token(options)
    end

Retweets the tweet specified by the id parameter. Returns the original tweet with retweet details embedded.

[Source]

# File lib/twitter_oauth/status.rb, line 20
    def retweet(id)
      post("/statuses/retweet/#{id}.json")
    end

Returns the 20 most recent retweets posted by the authenticating user

[Source]

# File lib/twitter_oauth/timeline.rb, line 38
    def retweeted_by_me(options={})
      args = options.map{|k,v| "#{k}=#{v}"}.join('&')
      get("/statuses/retweeted_by_me.json?#{args}")
    end

Returns the 20 most recent retweets posted by the authenticating user‘s friends.

[Source]

# File lib/twitter_oauth/timeline.rb, line 44
    def retweeted_to_me(options={})
      args = options.map{|k,v| "#{k}=#{v}"}.join('&')
      get("/statuses/retweeted_to_me.json?#{args}")
    end

Returns the 100 most recent retweets of the tweet.

[Source]

# File lib/twitter_oauth/status.rb, line 25
    def retweets(id)
      get("/statuses/retweets/#{id}.json")
    end

Returns the 20 most recent tweets of the authenticated user that have been retweeted by others.

[Source]

# File lib/twitter_oauth/timeline.rb, line 50
    def retweets_of_me(options={})
      args = options.map{|k,v| "#{k}=#{v}"}.join('&')
      get("/statuses/retweets_of_me.json?#{args}")
    end

Search for places (cities and neighborhoods) that can be attached to a statuses/update. Given a latitude and a longitude, return a list of all the valid places that can be used as a place_id when updating a status

[Source]

# File lib/twitter_oauth/geo.rb, line 6
    def reverse_geocode(lat, lng, options={})
      options[:lat] = lat; options[:lng] = lng
      args = options.map{|k,v| "#{k}=#{v}"}.join('&')
      get "/geo/reverse_geocode.json?#{args}"
    end

Returns the authenticated user‘s saved search queries.

[Source]

# File lib/twitter_oauth/saved_searches.rb, line 5
    def saved_searches
      get("/saved_searches.json")
    end

[Source]

# File lib/twitter_oauth/search.rb, line 6
    def search(q, options={})
      options[:page] ||= 1
      options[:rpp] ||= 20
      options[:q] = URI.escape(q)
      args = options.map{|k,v| "#{k}=#{v}"}.join('&')
      search_get("/search.json?#{args}")
    end

By default, returns a list of the 20 most recent direct messages sent by the authenticating user.

[Source]

# File lib/twitter_oauth/direct_messages.rb, line 13
    def sent_messages(options={})
      args = options.map{|k,v| "#{k}=#{v}"}.join('&')
      get("/direct_messages/sent.json?#{args}")
    end

[Source]

# File lib/twitter_oauth/client.rb, line 39
    def show(username)
      get("/users/show/#{username}.json")
    end

Returns a single status, specified by the id parameter below.

[Source]

# File lib/twitter_oauth/status.rb, line 5
    def status(id)
      get("/statuses/show/#{id}.json")
    end

Destroys the status specified by the required ID parameter

[Source]

# File lib/twitter_oauth/status.rb, line 15
    def status_destroy(id)
      post("/statuses/destroy/#{id}.json")
    end

Make the authenticated user follow the specified list.

[Source]

# File lib/twitter_oauth/lists.rb, line 85
    def subscribe_to_list(user, list, options={})
      post("/#{user}/#{list}/subscribers.json")
    end

Returns the string "ok" in the requested format with a 200 OK HTTP status code.

[Source]

# File lib/twitter_oauth/client.rb, line 44
    def test
      get("/help/test.json")
    end

Returns the top ten topics that are currently trending on Twitter.

[Source]

# File lib/twitter_oauth/trends.rb, line 5
    def trends
      get("/trends.json")
    end

Returns the locations that Twitter has trending topic information for. The response is an array of "locations" that encode the location‘s WOEID (a Yahoo! Where On Earth ID) and some other human-readable information such as a canonical name and country the location belongs in.

[Source]

# File lib/twitter_oauth/trends.rb, line 12
    def trends_available
      get("/trends/available.json")
    end

Returns the top 10 trending topics for a specific location Twitter has trending topic information for. The response is an array of "trend" objects that encode the name of the trending topic, the query parameter that can be used to search for the topic on Search, and the direct URL that can be issued against Search. This information is cached for five minutes, and therefore users are discouraged from querying these endpoints faster than once every five minutes. Global trends information is also available from this API by using a WOEID of 1.

[Source]

# File lib/twitter_oauth/trends.rb, line 21
    def trends_for_location(woeid)
      get("/trends/woeid.json")
    end

Un-blocks the user specified in the ID parameter for the authenticating user. Returns the un-blocked user in the requested format when successful.

[Source]

# File lib/twitter_oauth/blocks.rb, line 13
    def unblock(id)
      post("/blocks/destroy/#{id}.json")
    end

Un-favorites the status specified in the ID parameter as the authenticating user. Returns the un-favorited status when successful.

[Source]

# File lib/twitter_oauth/favorites.rb, line 17
    def unfavorite(id)
      post("/favorites/destroy/#{id}.json")
    end

Allows the authenticating users to unfollow the specified user. Returns the unfollowed user when successful.

[Source]

# File lib/twitter_oauth/friendships.rb, line 22
    def unfriend(id)
      post("/friendships/destroy/#{id}.json")
    end

Unsubscribes the authenticated user form the specified list.

[Source]

# File lib/twitter_oauth/lists.rb, line 90
    def unsubscribe_from_list(user, list)
      delete("/#{user}/#{list}/subscribers.json")
    end

Updates the authenticating user‘s status.

[Source]

# File lib/twitter_oauth/status.rb, line 10
    def update(message, options={})
      post('/statuses/update.json', options.merge(:status => message))
    end

Updates the specified list.

[Source]

# File lib/twitter_oauth/lists.rb, line 14
    def update_list(user, list, options={})
      post("/#{user}/lists/#{list}.json", options)
    end

Sets values that users are able to set under the "Account" tab of their settings page. Valid parameters are:

  :name     Full name associated with the profile. Maximum of 20 characters.
  :url      URL associated with the profile. Will be prepended with "http://" if not present. Maximum of 100 characters.
  :location The city or country describing where the user of the account is located. The contents are not normalized
            or geocoded in any way. Maximum of 30 characters.
  :description A description of the user owning the account. Maximum of 160 characters.

[Source]

# File lib/twitter_oauth/account.rb, line 48
    def update_profile(params)
      post('/account/update_profile', params)
    end

Updates profile background image. Takes a File object and optional tile argument. Returns extended user info object.

[Source]

# File lib/twitter_oauth/account.rb, line 23
    def update_profile_background_image(image, tile = false)
      body, headers = http_multipart_data({:image => image, :tile => tile})
      post('/account/update_profile_background_image.json', body, headers)
    end

colors hash must contain at least one or more of the following keys :profile_background_color, :profile_text_color, :profile_link_color, :profile_sidebar_fill_color, :profile_sidebar_border_color returns extended user info object.

[Source]

# File lib/twitter_oauth/account.rb, line 37
    def update_profile_colors(colors)
      post('/account/update_profile_colors.json', colors)
    end

Updates profile avatar image. Takes a File object which should be an image. Returns extended user info object.

[Source]

# File lib/twitter_oauth/account.rb, line 30
    def update_profile_image(image)
      body, headers = http_multipart_data({:image => image})
      post('/account/update_profile_image.json', body, headers)
    end
user(options={})

Alias for user_timeline

Returns the 20 most recent statuses posted from the authenticating user.

[Source]

# File lib/twitter_oauth/timeline.rb, line 24
    def user_timeline(options={})
      args = options.map{|k,v| "#{k}=#{v}"}.join('&')
      get("/statuses/user_timeline.json?#{args}")
    end

Returns the top 30 trending topics for each day in a given week.

[Source]

# File lib/twitter_oauth/search.rb, line 25
    def weekly_trends
      search_get("/trends/weekly.json")
    end

[Validate]