Blast-Radius Aware AI Code Review for Business-Critical Systems
LiveReview LiveReview Explore LiveReview

Twitter::API::Trait::ApiMethods - Convenient API Methods

Author

       Marc Mims <marc@questright.com>

Description

       This trait provides convenient methods for calling API endpoints. They are Net::Twitter compatible, with
       the same names and calling conventions.

       Refer to Twitter's API documentation <https://developer.twitter.com/en/docs/api-reference-index> for
       details about each method's parameters.

       These methods are simply shorthand forms of "get" and "post".  All methods can be called with a
       parameters hashref. It can be omitted for endpoints that do not require any parameters, such as
       "mentions". For example, all of these calls are equivalent:

           $client->mentions;
           $client->mentions({});
           $client->get('statuses/mentions_timeline');
           $client->get('statuses/mentions_timeline', {});

       Use the parameters hashref to pass optional parameters. For example,

           $client->mentions({ count => 200, trim_user=>'true' });

       Some methods, with required parameters, can take positional parameters. For example, "geo_id" requires a
       "place_id" parameter. These calls are equivalent:

           $client->place_id($place);
           $client->place_id({ place_id => $place });

       When positional parameters are allowed, they must be specified in the correct order, but they don't all
       need to be specified. Those not specified positionally can be added to the parameters hashref. For
       example, these calls are equivalent:

           $client->add_collection_entry($id, $tweet_id);
           $client->add_collection_entry($id, { tweet_id => $tweet_id);
           $client->add_collection_entry({ id => $id, tweet_id => $tweet_id });

       Many calls require a "screen_name" or "user_id". Where noted, you may pass either ID as the first
       positional parameter. Twitter::API will inspect the value. If it contains only digits, it will be
       considered a "user_id".  Otherwise, it will be considered a "screen_name". Best practice is to explicitly
       declare the ID type by passing it in the parameters hashref, because it is possible to for users to set
       their screen names to a string of digits, making the inferred ID ambiguous. These calls are equivalent:

          $client->create_block('realDonaldTrump');
          $client->create_block({ screen_name => 'realDonaldTrump' });

       Since all of these methods simple resolve to a "get" or "post" call, see the Twitter::API for details
       about return values and error handling.

Methods

account_settings([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/get-account-settings>

   blocking([\%args])
       Aliases: blocks_list

       <https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/get-blocks-list>

   blocking_ids([\%args])
       Aliases: blocks_ids

       <https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/get-blocks-ids>

   collection_entries([$id,][\%args])
       <https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/get-collections-entries>

   collections([$screen_name|$user_id,][\%args])
       <https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/get-collections-list>

   favorites([\%args])
       <https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-favorites-list>

   followers([\%args])
       Aliases: followers_list

       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-followers-list>

   followers_ids([$screen_name|$user_id,][\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-followers-ids>

   friends([\%args])
       Aliases: friends_list

       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friends-list>

   friends_ids([\%args])
       Aliases: following_ids

       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friends-ids>

   friendships_incoming([\%args])
       Aliases: incoming_friendships

       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friendships-incoming>

   friendships_outgoing([\%args])
       Aliases: outgoing_friendships

       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friendships-outgoing>

   geo_id([$place_id,][\%args])
       <https://developer.twitter.com/en/docs/geo/place-information/api-reference/get-geo-id-place_id>

   geo_search([\%args])
       <https://developer.twitter.com/en/docs/geo/places-near-location/api-reference/get-geo-search>

   get_configuration([\%args])
       <https://developer.twitter.com/en/docs/developer-utilities/configuration/api-reference/get-help-configuration>

   get_languages([\%args])
       <https://developer.twitter.com/en/docs/developer-utilities/supported-languages/api-reference/get-help-languages>

   get_list([\%args])
       Aliases: show_list

       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-show>

   get_lists([\%args])
       Aliases: list_lists, all_subscriptions

       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-list>

   get_privacy_policy([\%args])
       <https://developer.twitter.com/en/docs/developer-utilities/privacy-policy/api-reference/get-help-privacy>

   get_tos([\%args])
       <https://developer.twitter.com/en/docs/developer-utilities/terms-of-service/api-reference/get-help-tos>

   home_timeline([\%args])
       <https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-home_timeline>

   list_members([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-members>

   list_memberships([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-memberships>

   list_ownerships([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-ownerships>

   list_statuses([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-statuses>

   list_subscribers([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-subscribers>

   list_subscriptions([\%args])
       Aliases: subscriptions

       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-subscriptions>

   lookup_friendships([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friendships-lookup>

   lookup_statuses([$id,][\%args])
       <https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-lookup>

   lookup_users([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-lookup>

   mentions([\%args])
       Aliases: replies, mentions_timeline

       <https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-mentions_timeline>

   mutes([\%args])
       Aliases: muting_ids, muted_ids

       <https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/get-mutes-users-ids>

   muting([\%args])
       Aliases: mutes_list

       <https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/get-mutes-users-list>

   no_retweet_ids([\%args])
       Aliases: no_retweets_ids

       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friendships-no_retweets-ids>

   oembed([\%args])
       <https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-oembed>

   profile_banner([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/get-users-profile_banner>

   rate_limit_status([\%args])
       <https://developer.twitter.com/en/docs/developer-utilities/rate-limit-status/api-reference/get-application-rate_limit_status>

   retweeters_ids([$id,][\%args])
       <https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-retweeters-ids>

   retweets([$id,][\%args])
       <https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-retweets-id>

   retweets_of_me([\%args])
       Aliases: retweeted_of_me

       <https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-retweets_of_me>

   reverse_geocode([$lat,[$long,]][\%args])
       <https://developer.twitter.com/en/docs/geo/places-near-location/api-reference/get-geo-reverse_geocode>

   saved_searches([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/get-saved_searches-list>

   search([$q,][\%args])
       <https://developer.twitter.com/en/docs/tweets/search/api-reference/get-search-tweets>

   sent_direct_messages([\%args])
       Aliases: direct_messages_sent

       <https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/get-sent-message>

   show_friendship([\%args])
       Aliases: show_relationship

       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-friendships-show>

   show_list_member([\%args])
       Aliases: is_list_member

       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-members-show>

   show_list_subscriber([\%args])
       Aliases: is_list_subscriber, is_subscriber_lists

       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-subscribers-show>

   show_saved_search([$id,][\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/get-saved_searches-show-id>

   show_status([$id,][\%args])
       <https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-show-id>

   show_user([$screen_name|$user_id,][\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-show>

   suggestion_categories([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-suggestions>

   trends_available([\%args])
       <https://developer.twitter.com/en/docs/trends/locations-with-trending-topics/api-reference/get-trends-available>

   trends_closest([\%args])
       <https://developer.twitter.com/en/docs/trends/locations-with-trending-topics/api-reference/get-trends-closest>

   trends_place([$id,][\%args])
       <https://developer.twitter.com/en/docs/trends/trends-for-location/api-reference/get-trends-place>

   user_suggestions([$slug,][\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-suggestions-slug-members>

   user_suggestions_for([$slug,][\%args])
       Aliases: follow_suggestions

       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-suggestions-slug>

   user_timeline([$screen_name|$user_id,][\%args])
       <https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-user_timeline>

   users_search([$q,][\%args])
       Aliases: find_people, search_users

       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-search>

   verify_credentials([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/get-account-verify_credentials>

   add_collection_entry([$id,[$tweet_id,]][\%args])
       <https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/post-collections-entries-add>

   add_list_member([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-members-create>

   create_block([$screen_name|$user_id,][\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/post-blocks-create>

   create_collection([$name,][\%args])
       <https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/post-collections-create>

   create_favorite([$id,][\%args])
       <https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-favorites-create>

   create_friend([$screen_name|$user_id,][\%args])
       Aliases: follow, follow_new, create_friendship

       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/post-friendships-create>

   create_list([$name,][\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-create>

   create_media_metadata([\%args])
       <https://developer.twitter.com/en/docs/media/upload-media/api-reference/post-media-metadata-create>

   create_mute([$screen_name|$user_id,][\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/post-mutes-users-create>

       Alias: mute

   create_saved_search([$query,][\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-saved_searches-create>

   curate_collection([\%args])
       <https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/post-collections-entries-curate>

   delete_list([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-destroy>

   delete_list_member([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-members-destroy>

   destroy_block([$screen_name|$user_id,][\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/post-blocks-destroy>

   destroy_collection([$id,][\%args])
       <https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/post-collections-destroy>

   destroy_favorite([$id,][\%args])
       <https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-favorites-destroy>

   destroy_friend([$screen_name|$user_id,][\%args])
       Aliases: unfollow, destroy_friendship

       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/post-friendships-destroy>

   destroy_mute([$screen_name|$user_id,][\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/post-mutes-users-destroy>

       Alias: unmute

   destroy_saved_search([$id,][\%args])
       Aliases: delete_saved_search

       <https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-saved_searches-destroy-id>

   destroy_status([$id,][\%args])
       <https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-destroy-id>

   members_create_all([\%args])
       Aliases: add_list_members

       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-members-create_all>

   members_destroy_all([\%args])
       Aliases: remove_list_members

       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-members-destroy_all>

   move_collection_entry([$id,[$tweet_id,[$relative_to,]]][\%args])
       <https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/post-collections-entries-move>

   remove_collection_entry([$id,[$tweet_id,]][\%args])
       <https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/post-collections-entries-remove>

   remove_profile_banner([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-account-remove_profile_banner>

   report_spam([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/post-users-report_spam>

   retweet([$id,][\%args])
       <https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-retweet-id>

   subscribe_list([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-subscribers-create>

   unretweet([$id,][\%args])
       <https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-unretweet-id>

   unsubscribe_list([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-subscribers-destroy>

   update([$status,][\%args])
       <https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-update>

   update_account_settings([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-account-settings>

   update_collection([$id,][\%args])
       <https://developer.twitter.com/en/docs/tweets/curate-a-collection/api-reference/post-collections-update>

   update_friendship([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/post-friendships-update>

   update_list([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/post-lists-update>

   update_profile([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-account-update_profile>

   update_profile_background_image([\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-account-update_profile_background_image>

   update_profile_banner([$banner,][\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-account-update_profile_banner>

   update_profile_image([$image,][\%args])
       <https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/post-account-update_profile_image>

   upload_media([$media,][\%args])
       Aliases: upload

       <https://developer.twitter.com/en/docs/media/upload-media/api-reference/post-media-upload>

   direct_messages_events([\%args])
       <https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/list-events.html>

   show_direct_messages_event([$id,][\%args])
       <https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/get-event>

   destroy_direct_messages_event([$id,][\%args])
       <https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/delete-message-event>

   new_direct_messages_event([$text,$recipient_id]|[\%event],[\%args])
       For simple usage, pass text and recipient ID:

           $client->new_dirrect_messages_event($text, $recipient_id)

       For more complex messages, pass a full event structure, for example:

           $client->new_direct_massages_event({
               type => 'message_create',
               message_create => {
                   target => { recipient_id => $user_id },
                   message_data => {
                       text => $text,
                       attachment => {
                           type  => 'media',
                           media => { id => $media->{id} },
                       },
                   },
               },
           })

       <https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/new-message>

   invalidate_access_token([\%args])
       Calling this method has the same effect as a user revoking access to the application via Twitter
       settings. The access token/secret pair will no longer be valid.

       This method can be called with client that has been initialized with "access_token" and
       "access_token_secret" attributes, by passing "-token" and "-token_secret" parameters, or by passing
       "access_token" and "access_token_secret" parameters.

           $client->invalidate_access_token;
           $client->invalidate_access_token({ -token => $token, -token_secret => $secret });
           $client->invalidate_access_token({
               access_token        => $token,
               access_token_secret => $secret,
           });

       Twitter added this method to the API on 2018-09-20.

       See <https://developer.twitter.com/en/docs/basics/authentication/api-reference/invalidate_access_token>

Name

       Twitter::API::Trait::ApiMethods - Convenient API Methods

Version

       version 1.0006

See Also