NAME

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

VERSION

version 1.0006

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 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

https://developer.twitter.com/en/docs/trends/locations-with-trending-topics/api-reference/get-trends-available

https://developer.twitter.com/en/docs/trends/locations-with-trending-topics/api-reference/get-trends-closest

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

AUTHOR

Marc Mims <marc@questright.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015-2021 by Marc Mims.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.