Module: Twitter::REST::Users

Includes:
Utils, Utils
Included in:
API
Defined in:
lib/twitter/rest/users.rb

Constant Summary

MAX_USERS_PER_REQUEST =
100

Constants included from Utils

Twitter::REST::Utils::DEFAULT_CURSOR, Twitter::REST::Utils::URI_SUBSTRING

Instance Method Summary (collapse)

Methods included from Utils

flat_pmap, pmap

Instance Method Details

- (Array<Twitter::User>) block(*users) - (Array<Twitter::User>) block(*users, options)

Note:

Destroys a friendship to the blocked user if it exists.

Blocks the users specified by the authenticating user

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



194
195
196
# File 'lib/twitter/rest/users.rb', line 194

def block(*args)
  parallel_users_from_response(:post, '/1.1/blocks/create.json', args)
end

- (Boolean) block?(user, options = {})

Returns true if the authenticating user is blocking a target user

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



169
170
171
172
173
174
175
176
177
178
179
# File 'lib/twitter/rest/users.rb', line 169

def block?(user, options = {})
  user_id = case user
  when Integer
    user
  when String, URI, Addressable::URI
    user(user).id
  when Twitter::User
    user.id
  end
  blocked_ids(options).collect(&:to_i).include?(user_id)
end

- (Array<Twitter::User>) blocked(options = {})

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

Options Hash (options):

  • :skip_status (Boolean, String, Integer)

    Do not include user's Tweets when set to true, 't' or 1.

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



140
141
142
# File 'lib/twitter/rest/users.rb', line 140

def blocked(options = {})
  perform_with_cursor(:get, '/1.1/blocks/list.json', options, :users, Twitter::User)
end

- (Twitter::Cursor) blocked_ids(options = {})

Returns an array of numeric user IDs the authenticating user is blocking

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



154
155
156
157
158
# File 'lib/twitter/rest/users.rb', line 154

def blocked_ids(*args)
  arguments = Twitter::Arguments.new(args)
  merge_user!(arguments.options, arguments.pop)
  perform_with_cursor(:get, '/1.1/blocks/ids.json', arguments.options, :ids)
end

- (Array<Twitter::User>) contributees(options = {}) - (Array<Twitter::User>) contributees(user, options = {})

Returns an array of users that the specified user can contribute to

Overloads:

  • - (Array<Twitter::User>) contributees(options = {})

    Options Hash (options):

    • :skip_status (Boolean, String, Integer)

      Do not include contributee's Tweets when set to true, 't' or 1.

  • - (Array<Twitter::User>) contributees(user, options = {})

    Options Hash (options):

    • :skip_status (Boolean, String, Integer)

      Do not include contributee's Tweets when set to true, 't' or 1.

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



305
306
307
# File 'lib/twitter/rest/users.rb', line 305

def contributees(*args)
  users_from_response(:get, '/1.1/users/contributees.json', args)
end

- (Array<Twitter::User>) contributors(options = {}) - (Array<Twitter::User>) contributors(user, options = {})

Returns an array of users who can contribute to the specified account

Overloads:

  • - (Array<Twitter::User>) contributors(options = {})

    Options Hash (options):

    • :skip_status (Boolean, String, Integer)

      Do not include contributee's Tweets when set to true, 't' or 1.

  • - (Array<Twitter::User>) contributors(user, options = {})

    Options Hash (options):

    • :skip_status (Boolean, String, Integer)

      Do not include contributee's Tweets when set to true, 't' or 1.

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



323
324
325
# File 'lib/twitter/rest/users.rb', line 323

def contributors(*args)
  users_from_response(:get, '/1.1/users/contributors.json', args)
end

- (Array<Twitter::User>) mute(*users) - (Array<Twitter::User>) mute(*users, options)

Mutes the users specified by the authenticating user

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



392
393
394
# File 'lib/twitter/rest/users.rb', line 392

def mute(*args)
  parallel_users_from_response(:post, '/1.1/mutes/users/create.json', args)
end

- (Array<Twitter::User>) muted(options = {})

Returns an array of user objects that the authenticating user is muting

Options Hash (options):

  • :skip_status (Boolean, String, Integer)

    Do not include user's Tweets when set to true, 't' or 1.

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



421
422
423
# File 'lib/twitter/rest/users.rb', line 421

def muted(options = {})
  perform_with_cursor(:get, '/1.1/mutes/users/list.json', options, :users, Twitter::User)
end

- (Twitter::Cursor) muted_ids(options = {})

Returns an array of numeric user IDs the authenticating user is muting

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



435
436
437
438
439
# File 'lib/twitter/rest/users.rb', line 435

def muted_ids(*args)
  arguments = Twitter::Arguments.new(args)
  merge_user!(arguments.options, arguments.pop)
  perform_with_cursor(:get, '/1.1/mutes/users/ids.json', arguments.options, :ids)
end

- (Twitter::ProfileBanner) profile_banner(options = {}) - (Twitter::ProfileBanner) profile_banner(user, options = {})

Note:

If the user has not uploaded a profile banner, a HTTP 404 will be served instead.

Returns the available size variations of the specified user's profile banner.

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



374
375
376
377
378
# File 'lib/twitter/rest/users.rb', line 374

def profile_banner(*args)
  arguments = Twitter::Arguments.new(args)
  merge_user!(arguments.options, arguments.pop || user_id) unless arguments.options[:user_id] || arguments.options[:screen_name]
  perform_with_object(:get, '/1.1/users/profile_banner.json', arguments.options, Twitter::ProfileBanner)
end

- (nil) remove_profile_banner(options = {})

Removes the authenticating user's profile banner image

Raises:

See Also:

Rate Limited?:

  • No

Authentication:

  • Requires user context



335
336
337
338
# File 'lib/twitter/rest/users.rb', line 335

def remove_profile_banner(options = {})
  post('/1.1/account/remove_profile_banner.json', options).body
  true
end

- (Twitter::Settings) settings(options = {})

Updates the authenticating user's settings. Or, if no options supplied, returns settings (including current trend, geo and sleep time information) for the authenticating user.

Options Hash (options):

  • :trend_location_woeid (Integer)

    The Yahoo! Where On Earth ID to use as the user's default trend location. Global information is available by using 1 as the WOEID. The woeid must be one of the locations returned by GET trends/available.

  • :sleep_time_enabled (Boolean, String, Integer)

    When set to true, 't' or 1, will enable sleep time for the user. Sleep time is the time when push or SMS notifications should not be sent to the user.

  • :start_sleep_time (Integer)

    The hour that sleep time should begin if it is enabled. The value for this parameter should be provided in ISO8601 format (i.e. 00-23). The time is considered to be in the same timezone as the user's time_zone setting.

  • :end_sleep_time (Integer)

    The hour that sleep time should end if it is enabled. The value for this parameter should be provided in ISO8601 format (i.e. 00-23). The time is considered to be in the same timezone as the user's time_zone setting.

  • :time_zone (String)

    The timezone dates and times should be displayed in for the user. The timezone must be one of the Rails TimeZone names.

  • :lang (String)

    The language which Twitter should render in for this user. The language must be specified by the appropriate two letter ISO 639-1 representation. Currently supported languages are provided by GET help/languages.

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



33
34
35
36
37
38
39
# File 'lib/twitter/rest/users.rb', line 33

def settings(options = {})
  request_method = options.size.zero? ? :get : :post
  response = send(request_method.to_sym, '/1.1/account/settings.json', options).body
  # https://dev.twitter.com/issues/59
  response.update(:trend_location => response.fetch(:trend_location, []).first)
  Twitter::Settings.new(response)
end

- (Array<Twitter::User>) unblock(*users) - (Array<Twitter::User>) unblock(*users, options)

Un-blocks the users specified by the authenticating user

Raises:

See Also:

Rate Limited?:

  • No

Authentication:

  • Requires user context



210
211
212
# File 'lib/twitter/rest/users.rb', line 210

def unblock(*args)
  parallel_users_from_response(:post, '/1.1/blocks/destroy.json', args)
end

- (Array<Twitter::User>) unmute(*users) - (Array<Twitter::User>) unmute(*users, options)

Un-mutes the user specified by the authenticating user.

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



408
409
410
# File 'lib/twitter/rest/users.rb', line 408

def unmute(*args)
  parallel_users_from_response(:post, '/1.1/mutes/users/destroy.json', args)
end

- (Twitter::User) update_delivery_device(device, options = {})

Sets which device Twitter delivers updates to for the authenticating user

Raises:

See Also:

Rate Limited?:

  • No

Authentication:

  • Requires user context



64
65
66
# File 'lib/twitter/rest/users.rb', line 64

def update_delivery_device(device, options = {})
  perform_with_object(:post, '/1.1/account/update_delivery_device.json', options.merge(:device => device), Twitter::User)
end

- (Twitter::User) update_profile(options = {})

Note:

Only the options specified will be updated.

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

Options Hash (options):

  • :name (String)

    Full name associated with the profile. Maximum of 20 characters.

  • :url (String)

    URL associated with the profile. Will be prepended with "http://" if not present. Maximum of 100 characters.

  • :location (String)

    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 (String)

    A description of the user owning the account. Maximum of 160 characters.

Raises:

See Also:

Rate Limited?:

  • No

Authentication:

  • Requires user context



81
82
83
# File 'lib/twitter/rest/users.rb', line 81

def update_profile(options = {})
  perform_with_object(:post, '/1.1/account/update_profile.json', options, Twitter::User)
end

- (Twitter::User) update_profile_background_image(image, options = {})

Updates the authenticating user's profile background image

Options Hash (options):

  • :tile (Boolean)

    Whether or not to tile the background image. If set to true the background image will be displayed tiled. The image will not be tiled otherwise.

Raises:

See Also:

Rate Limited?:

  • No

Authentication:

  • Requires user context



95
96
97
# File 'lib/twitter/rest/users.rb', line 95

def update_profile_background_image(image, options = {})
  perform_with_object(:post, '/1.1/account/update_profile_background_image.json', options.merge(:image => image), Twitter::User)
end

- (nil) update_profile_banner(banner, options = {})

Note:

Uploads a profile banner on behalf of the authenticating user. For best results, upload an <5MB image that is exactly 1252px by 626px. Images will be resized for a number of display options. Users with an uploaded profile banner will have a profile_banner_url node in their Users objects. More information about sizing variations can be found in User Profile Images and Banners.

Note:

Profile banner images are processed asynchronously. The profile_banner_url and its variant sizes will not necessary be available directly after upload.

Updates the authenticating user's profile banner image

Options Hash (options):

  • :width (Integer)

    The width of the preferred section of the image being uploaded in pixels. Use with height, offset_left, and offset_top to select the desired region of the image to use.

  • :height (Integer)

    The height of the preferred section of the image being uploaded in pixels. Use with width, offset_left, and offset_top to select the desired region of the image to use.

  • :offset_left (Integer)

    The number of pixels by which to offset the uploaded image from the left. Use with height, width, and offset_top to select the desired region of the image to use.

  • :offset_top (Integer)

    The number of pixels by which to offset the uploaded image from the top. Use with height, width, and offset_left to select the desired region of the image to use.

Raises:

See Also:

Rate Limited?:

  • No

Authentication:

  • Requires user context



358
359
360
361
# File 'lib/twitter/rest/users.rb', line 358

def update_profile_banner(banner, options = {})
  post('/1.1/account/update_profile_banner.json', options.merge(:banner => banner)).body
  true
end

- (Twitter::User) update_profile_colors(options = {})

Sets one or more hex values that control the color scheme of the authenticating user's profile

Options Hash (options):

  • :profile_background_color (String)

    Profile background color.

  • :profile_text_color (String)

    Profile text color.

  • :profile_link_color (String)

    Profile link color.

  • :profile_sidebar_fill_color (String)

    Profile sidebar's background color.

  • :profile_sidebar_border_color (String)

    Profile sidebar's border color.

Raises:

See Also:

Rate Limited?:

  • No

Authentication:

  • Requires user context



112
113
114
# File 'lib/twitter/rest/users.rb', line 112

def update_profile_colors(options = {})
  perform_with_object(:post, '/1.1/account/update_profile_colors.json', options, Twitter::User)
end

- (Twitter::User) update_profile_image(image, options = {})

Note:

Updates the authenticating user's profile image. Note that this method expects raw multipart data, not a URL to an image.

Note:

This method asynchronously processes the uploaded file before updating the user's profile image URL. You can either update your local cache the next time you request the user's information, or, at least 5 seconds after uploading the image, ask for the updated URL using GET users/show.

Updates the authenticating user's profile image

Raises:

See Also:

Rate Limited?:

  • No

Authentication:

  • Requires user context



127
128
129
# File 'lib/twitter/rest/users.rb', line 127

def update_profile_image(image, options = {})
  perform_with_object(:post, '/1.1/account/update_profile_image.json', options.merge(:image => image), Twitter::User)
end

- (Twitter::User) user(options = {}) - (Twitter::User) user(user, options = {})

Returns The requested user.

Overloads:

  • - (Twitter::User) user(options = {})

    Returns extended information for the authenticated user

    Options Hash (options):

    • :skip_status (Boolean, String, Integer)

      Do not include user's Tweets when set to true, 't' or 1.

  • - (Twitter::User) user(user, options = {})

    Returns extended information for a given user

    Options Hash (options):

    • :skip_status (Boolean, String, Integer)

      Do not include user's Tweets when set to true, 't' or 1.

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



251
252
253
254
255
256
257
258
259
# File 'lib/twitter/rest/users.rb', line 251

def user(*args)
  arguments = Twitter::Arguments.new(args)
  if arguments.last || user_id?
    merge_user!(arguments.options, arguments.pop || user_id)
    perform_with_object(:get, '/1.1/users/show.json', arguments.options, Twitter::User)
  else
    verify_credentials(arguments.options)
  end
end

- (Boolean) user?(user, options = {})

Returns true if the specified user exists

Raises:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



268
269
270
271
272
273
274
# File 'lib/twitter/rest/users.rb', line 268

def user?(user, options = {})
  merge_user!(options, user)
  get('/1.1/users/show.json', options)
  true
rescue Twitter::Error::NotFound
  false
end

- (Array<Twitter::User>) user_search(query, options = {})

Returns users that match the given query

Options Hash (options):

  • :count (Integer)

    The number of people to retrieve. Maxiumum of 20 allowed per page.

  • :page (Integer)

    Specifies the page of results to retrieve.

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



287
288
289
# File 'lib/twitter/rest/users.rb', line 287

def user_search(query, options = {})
  perform_with_objects(:get, '/1.1/users/search.json', options.merge(:q => query), Twitter::User)
end

- (Array<Twitter::User>) users(*users) - (Array<Twitter::User>) users(*users, options)

Returns extended information for up to 100 users

Overloads:

  • - (Array<Twitter::User>) users(*users, options)

    Options Hash (options):

    • :method (Symbol, String)

      Requests users via a GET request instead of the standard POST request if set to ':get'.

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Required



227
228
229
230
231
232
233
# File 'lib/twitter/rest/users.rb', line 227

def users(*args)
  arguments = Twitter::Arguments.new(args)
  request_method = arguments.options.delete(:method) || :post
  flat_pmap(arguments.each_slice(MAX_USERS_PER_REQUEST)) do |users|
    perform_with_objects(request_method, '/1.1/users/lookup.json', merge_users(arguments.options, users), Twitter::User)
  end
end

- (Twitter::User) verify_credentials(options = {}) Also known as: current_user

Returns the requesting user if authentication was successful, otherwise raises Error::Unauthorized

Options Hash (options):

  • :skip_status (Boolean, String, Integer)

    Do not include user's Tweets when set to true, 't' or 1.

Raises:

See Also:

Rate Limited?:

  • Yes

Authentication:

  • Requires user context



50
51
52
# File 'lib/twitter/rest/users.rb', line 50

def verify_credentials(options = {})
  perform_with_object(:get, '/1.1/account/verify_credentials.json', options, Twitter::User)
end