1Net::Twitter::Lite(3pm)User Contributed Perl DocumentatioNnet::Twitter::Lite(3pm)
2
3
4

NAME

6       Net::Twitter::Lite - A perl interface to the Twitter API
7

VERSION

9       version 0.12008
10

STOP!

12       You probably want Net::Twitter::Lite::WithAPIv1_1 which has support for
13       Twitter API v1.1. If you're using a service with an API compatible with
14       Twitter's deprecated API v1, then you're in the right place.
15

SYNOPSIS

17         use Net::Twitter::Lite;
18
19         my $nt = Net::Twitter::Lite->new(
20             username => $user,
21             password => $password
22             legacy_lists_api => 0,
23         );
24
25         my $result = eval { $nt->update('Hello, world!') };
26
27         eval {
28             my $statuses = $nt->friends_timeline({ since_id => $high_water, count => 100 });
29             for my $status ( @$statuses ) {
30                 print "$status->{created_at} <$status->{user}{screen_name}> $status->{text}\n";
31             }
32         };
33         warn "$@\n" if $@;
34

DESCRIPTION

36       This module provides a perl interface to the Twitter API v1.
37
38       It uses the same API definitions as Net::Twitter, but without the extra
39       bells and whistles and without the additional dependencies.  Same great
40       taste, less filling.
41
42       This module is related to, but is not part of the "Net::Twitter"
43       distribution.  It's API methods and API method documentation are
44       generated from "Net::Twitter"'s internals.  It exists for those who
45       cannot, or prefer not to install Moose and its dependencies.
46
47       You should consider upgrading to "Net::Twitter" for additional
48       functionality, finer grained control over features, backwards
49       compatibility with older versions of "Net::Twitter", and additional
50       error handling options.
51

CLIENT CODE CHANGES REQUIRED

53   Legacy Lists API
54       Twitter re-implemented the Lists API using new endpoints and semantics.
55       For backwards compatibility, this version of "Net::Twitter::Lite"
56       defaults to the deprecated, legacy endpoints and semantics.  It issues
57       a warning if the "legacy_lists_api" option to new is not provided.
58
59       To enable the new Lists endpoints and semantics, pass
60       "(legacy_lists_api =" 0)> to "new".  To disable the warning, and keep
61       the backwards compatible endpoints and semantics, pass
62       "(legacy_lists_api =" 1)> to "new".
63
64       The "legacy_lists_api" option to "new" sets the default for all lists
65       API method calls.  You can override the default an each API call by
66       passing a "-legacy_lists_api" option set to 1 or 0.
67
68       Support for "legacy_lists_api" option will be removed in a future
69       version and the option to "new" will be silently ignored.
70
71   netrc option
72       The default "apiurl" changed in version 0.08006.  The change should be
73       transparent to client code, unless you're using the "netrc" option.  If
74       so, you'll need to either update the ".netrc" entry and change the
75       "machine" value from "twitter.com" to "api.twitter.com", or set either
76       the "netrc" or "netrc_machine" options to "twitter.com".
77
78           $nt = Net::Twitter::Lite->new(netrc_machine => 'twitter.com', netrc => 1);
79           # -or-
80           $nt = Net::Twitter::Lite->new(netrc => 'twitter.com');
81
82   OAuth requires callback parameter
83       Beginning with version 0.03, it is necessary for web applications using
84       OAuth authentication to pass the "callback" parameter to
85       "get_authorization_url".  In the absence of a callback parameter, when
86       the user authorizes the application a PIN number is displayed rather
87       than redirecting the user back to your site.
88

MIGRATING FROM NET::TWITTER 2.x

90       If you are migrating from Net::Twitter 2.12 (or an earlier version),
91       you may need to make some minor changes to your application code in
92       order to user Net::Twitter::Lite successfully.
93
94       The primary difference is in error handling.  Net::Twitter::Lite throws
95       exceptions on error.  It does not support the "get_error", "http_code",
96       and "http_message" methods used in Net::Twitter 2.12 and prior
97       versions.
98
99       Instead of
100
101         # DON'T!
102         my $friends = $nt->friends();
103         if ( $friends ) {
104             # process $friends
105         }
106
107       wrap the API call in an eval block:
108
109         # DO!
110         my $friends = eval { $nt->friends() };
111         if ( $friends ) {
112             # process $friends
113         }
114
115       Here's a much more complex example taken from application code using
116       Net::Twitter 2.12:
117
118         # DON'T!
119         my $friends = $nt->friends();
120         if ( $friends ) {
121             # process $friends
122         }
123         else {
124             my $error = $nt->get_error;
125             if ( ref $error ) {
126                 if ( ref($error) eq 'HASH' && exists $error->{error} ) {
127                     $error = $error->{error};
128                 }
129                 else {
130                     $error = 'Unexpected error type ' . ref($error);
131                 }
132             }
133             else {
134                 $error = $nt->http_code() . ": " . $nt->http_message;
135             }
136             warn "$error\n";
137         }
138
139       The Net::Twitter::Lite equivalent is:
140
141         # DO!
142         eval {
143             my $friends = $nt->friends();
144             # process $friends
145         };
146         warn "$@\n" if $@;
147         return;
148
149       In Net::Twitter::Lite, an error can always be treated as a string.  See
150       Net::Twitter::Lite::Error.  The HTTP Status Code and HTTP Message are
151       both available.  Rather than accessing them via the Net::Twitter::Lite
152       instance, you access them via the Net::Twitter::Lite::Error instance
153       thrown as an error.
154
155       For example:
156
157         # DO!
158         eval {
159            my $friends = $nt->friends();
160            # process $friends
161         };
162         if ( my $error = $@ ) {
163             if ( blessed $error && $error->isa("Net::Twitter::Lite::Error)
164                  && $error->code() == 502 ) {
165                 $error = "Fail Whale!";
166             }
167             warn "$error\n";
168         }
169
170   Unsupported Net::Twitter 2.12 options to "new"
171       Net::Twitter::Lite does not support the following Net::Twitter 2.12
172       options to "new".  It silently ignores them:
173
174       no_fallback
175           If Net::Twitter::Lite is unable to create an instance of the class
176           specified in the "useragent_class" option to "new", it dies, rather
177           than falling back to an LWP::UserAgent object.  You really don't
178           want a failure to create the "useragent_class" you specified to go
179           unnoticed.
180
181       twittervision
182           Net::Twitter::Lite does not support the TwitterVision API.  Use
183           Net::Twitter, instead, if you need it.
184
185       skip_arg_validation
186           Net::Twitter::Lite does not API parameter validation.  This is a
187           feature.  If Twitter adds a new option to an API method, you can
188           use it immediately by passing it in the HASH ref to the API call.
189
190           Net::Twitter::Lite relies on Twitter to validate its own
191           parameters.  An appropriate exception will be thrown if Twitter
192           reports a parameter error.
193
194       die_on_validation
195           See "skip_arg_validation".  If Twitter returns an bad parameter
196           error, an appropriate exception will be thrown.
197
198       arrayref_on_error
199           This option allowed the following idiom in Net::Twitter 2.12:
200
201             # DON'T!
202             for my $friend ( @{ $nt->friends() } ) {
203                # process $friend
204             }
205
206           The equivalent Net::Twitter::Lite code is:
207
208             # DO!
209             eval {
210                 for my $friend ( @{ $nt->friends() } ) {
211                     # process $friend
212                 }
213             };
214
215   Unsupported Net::Twitter 2.12 methods
216       clone
217           The "clone" method was added to Net::Twitter 2.x to allow safe
218           error handling in an environment where concurrent requests are
219           handled, for example, when using LWP::UserAgent::POE as the
220           "useragent_class".  Since Net::Twitter::Lite throws exceptions
221           instead of stashing them in the Net::Twitter::Lite instance, it is
222           safe in a current request environment, obviating the need for
223           "clone".
224
225       get_error
226       http_code
227       http_message
228           These methods are replaced by Net::Twitter::Lite::Error.  An
229           instance of that class is thrown errors are encountered.
230

METHODS AND ARGUMENTS

232       new This constructs a "Net::Twitter::Lite" object.  It takes several
233           named parameters, all of them optional:
234
235           username
236               This is the screen name or email used to authenticate with
237               Twitter. Use this option for Basic Authentication, only.
238
239           password
240               This is the password used to authenticate with Twitter. Use
241               this option for Basic Authentication, only.
242
243           consumer_key
244               A string containing the OAuth consumer key provided by Twitter
245               when an application is registered.  Use this option for OAuth
246               authentication, only.
247
248           consumer_secret
249               A string containing the OAuth consumer secret. Use this option
250               for OAuth authentication, only.  the "OAuth" trait is included.
251
252           oauth_urls
253               A HASH ref of URLs to be used with OAuth authentication.
254               Defaults to:
255
256                 {
257                     request_token_url => "http://twitter.com/oauth/request_token",
258                     authorization_url => "http://twitter.com/oauth/authorize",
259                     access_token_url  => "http://twitter.com/oauth/access_token",
260                     xauth_url         => "https://twitter.com/oauth/access_token",
261                 }
262
263           clientname
264               The value for the "X-Twitter-Client-Name" HTTP header. It
265               defaults to "Perl Net::Twitter::Lite".
266
267           clientver
268               The value for the "X-Twitter-Client-Version" HTTP header. It
269               defaults to current version of the "Net::Twitter::Lite" module.
270
271           clienturl
272               The value for the "X-Twitter-Client-URL" HTTP header. It
273               defaults to the search.cpan.org page for the
274               "Net::Twitter::Lite" distribution.
275
276           useragent_class
277               The "LWP::UserAgent" compatible class used internally by
278               "Net::Twitter::Lite".  It defaults to "LWP::UserAgent".  For
279               POE based applications, consider using "LWP::UserAgent::POE".
280
281           useragent_args
282               An HASH ref of arguments to pass to constructor of the class
283               specified with "useragent_class", above.  It defaults to {} (an
284               empty HASH ref).
285
286           useragent
287               The value for "User-Agent" HTTP header.  It defaults to
288               "Net::Twitter::Lite/0.11002 (Perl)".
289
290           source
291               The value used in the "source" parameter of API method calls.
292               It is currently only used in the "update" method in the REST
293               API.  It defaults to "twitterpm".  This results in the text
294               "from Net::Twitter" rather than "from web" for status messages
295               posted from "Net::Twitter::Lite" when displayed via the Twitter
296               web interface.  The value for this parameter is provided by
297               Twitter when a Twitter application is registered.  See
298               <http://apiwiki.twitter.com/FAQ#HowdoIget%E2%80%9CfromMyApp%E2%80%9DappendedtoupdatessentfrommyAPIapplication>.
299
300           apiurl
301               The URL for the Twitter API. This defaults to
302               "http://twitter.com".
303
304           identica
305               If set to 1 (or any value that evaluates to true), apiurl
306               defaults to "http://identi.ca/api".
307
308           ssl If set to 1, an SSL connection will be used for all API calls.
309               Defaults to 0.
310
311           netrc
312               (Optional) Sets the machine key to look up in ".netrc" to
313               obtain credentials. If set to 1, Net::Twitter::Lite will use
314               the value of the "netrc_machine" option (below).
315
316                  # in .netrc
317                  machine api.twitter.com
318                    login YOUR_TWITTER_USER_NAME
319                    password YOUR_TWITTER_PASSWORD
320                  machine semifor.twitter.com
321                    login semifor
322                    password SUPERSECRET
323
324                  # in your perl program
325                  $nt = Net::Twitter::Lite->new(netrc => 1);
326                  $nt = Net::Twitter::Lite->new(netrc => 'semifor.twitter.com');
327
328           netrc_machine
329               (Optional) Sets the "machine" entry to look up in ".netrc" when
330               "<netrc =" 1>> is used.  Defaults to "api.twitter.com".
331
332           legacy_lists_api
333               If set to 1, this option enables backwards compatibility by
334               using the now deprecated endpoints and semantics for lists API
335               methods. If set to 0, the new endpoints and semantics will be
336               used. Only the new lists API methods are documented here.
337
338               If you do not provide this option to "new" a warning is issued.
339               Support for this option and the legacy lists API methods will
340               be removed in a future version.
341
342           wrap_result
343               (Optional) If set to 1, this option will return an
344               Net::Twitter::Lite::WrapResult object, which provides both the
345               Twitter API result and the HTTP::Response object for the API
346               call. See Net::Twitter::Lite::WrapResult for details.
347
348   BASIC AUTHENTICATION METHODS
349       credentials($username, $password)
350           Set the credentials for Basic Authentication.  This is helpful for
351           managing multiple accounts.
352
353   OAUTH METHODS
354       authorized
355           Whether the client has the necessary credentials to be authorized.
356
357           Note that the credentials may be wrong and so the request may fail.
358
359       request_access_token
360           Returns list including the access token, access token secret,
361           user_id, and screen_name for this user. Takes a HASH of arguments.
362           The "verifier" argument is required.  See "OAUTH EXAMPLES".
363
364           The user must have authorized this app at the url given by
365           "get_authorization_url" first.
366
367           For desktop applications, the Twitter authorization page will
368           present the user with a PIN number.  Prompt the user for the PIN
369           number, and pass it as the "verifier" argument to
370           request_access_token.
371
372           Returns the access token and access token secret but also sets them
373           internally so that after calling this method, you can immediately
374           call API methods requiring authentication.
375
376       get_authorization_url(callback => $callback_url)
377           Get the URL used to authorize the user.  Returns a "URI" object.
378           For web applications, pass your applications callback URL as the
379           "callback" parameter.  No arguments are required for desktop
380           applications ("callback" defaults to "oob", out-of-band).
381
382       get_authentication_url(callback => $callback_url)
383           Get the URL used to authenticate the user with "Sign in with
384           Twitter" authentication flow.  Returns a "URI" object.  For web
385           applications, pass your applications callback URL as the "callback"
386           parameter.  No arguments are required for desktop applications
387           ("callback" defaults to "oob", out-of-band).
388
389       xauth($username, $password)
390           Exchanges a username and password for OAuth tokens. Your
391           application must be approved for XAuth access by Twitter for this
392           method to work.  Twitter does not grant XAuth access for web
393           applications except for a brief period of time to allow them to
394           switch form Basic authentication to OAuth authentication.
395
396       access_token
397           Get or set the access token.
398
399       access_token_secret
400           Get or set the access token secret.
401
402       request_token
403           Get or set the request token.
404
405       request_token_secret
406           Get or set the request token secret.
407
408       access_token_url
409           Get or set the access_token URL.
410
411       authentication_url
412           Get or set the authentication URL.
413
414       authorization_url
415           Get or set the authorization URL.
416
417       request_token_url
418           Get or set the request_token URL.
419
420       xauth_url
421           Get or set the XAuth access token request URL.
422

API METHODS AND ARGUMENTS

424       Most Twitter API methods take parameters.  All Net::Twitter::Lite API
425       methods will accept a HASH ref of named parameters as specified in the
426       Twitter API documentation.  For convenience, many Net::Twitter::Lite
427       methods accept simple positional arguments as documented, below.  The
428       positional parameter passing style is optional; you can always use the
429       named parameters in a hash ref if you prefer.
430
431       For example, the REST API method "update" has one required parameter,
432       "status".  You can call "update" with a HASH ref argument:
433
434           $nt->update({ status => 'Hello world!' });
435
436       Or, you can use the convenient form:
437
438           $nt->update('Hello world!');
439
440       The "update" method also has an optional parameter,
441       "in_reply_to_status_id".  To use it, you must use the HASH ref form:
442
443           $nt->update({ status => 'Hello world!', in_reply_to_status_id => $reply_to });
444
445       Convenience form is provided for the required parameters of all API
446       methods.  So, these two calls are equivalent:
447
448           $nt->friendship_exists({ user_a => $fred, user_b => $barney });
449           $nt->friendship_exists($fred, $barney);
450
451       Many API methods have aliases.  You can use the API method name, or any
452       of its aliases, as you prefer.  For example, these calls are all
453       equivalent:
454
455           $nt->friendship_exists($fred, $barney);
456           $nt->relationship_exists($fred, $barney);
457           $nt->follows($fred, $barney);
458
459       Aliases support both the HASH ref and convenient forms:
460
461           $nt->follows({ user_a => $fred, user_b => $barney });
462
463       Methods that support the "page" parameter expect page numbers > 0.
464       Twitter silently ignores invalid "page" values.  So "{ page => 0 }"
465       produces the same result as "{ page => 1 }".
466
467       In addition to the arguments specified for each API method described
468       below, an additional "authenticate" parameter can be passed.  To
469       request an "Authorization" header, pass "authenticated => 1"; to
470       suppress an authentication header, pass "authentication => 0".  Even if
471       requested, an Authorization header will not be added if there are no
472       user credentials (username and password for Basic Authentication;
473       access tokens for OAuth).
474
475       This is probably only useful for the "rate_limit_status" method in the
476       REST API, since it returns different values for an authenticated and a
477       non-authenticated call.
478

REST API Methods

480       Several of these methods accept a user ID as the "id" parameter.  The
481       user ID can be either a screen name, or the users numeric ID.  To
482       disambiguate, use the "screen_name" or "user_id" parameters, instead.
483
484       For example, These calls are equivalent:
485
486           $nt->create_friend('perl_api');    # screen name
487           $nt->create_friend(1564061);       # numeric ID
488           $nt->create_friend({ id => 'perl_api' });
489           $nt->create_friend({ screen_name => 'perl_api' });
490           $nt->create_friend({ user_id     => 1564061 });
491
492       However user_id 911 and screen_name 911 are separate Twitter accounts.
493       These calls are NOT equivalent:
494
495           $nt->create_friend(911); # interpreted as screen name
496           $nt->create_friend({ user_id => 911 }); # screen name: richellis
497
498       Whenever the "id" parameter is required and "user_id" and "screen_name"
499       are also parameters, using any one of them satisfies the requirement.
500
501       account_settings
502           Parameters: none
503           Required: none
504
505           Returns the current trend, geo and sleep time information for the
506           authenticating user.
507
508           Returns: HashRef
509
510       account_totals
511           Parameters: none
512           Required: none
513
514           Returns the current count of friends, followers, updates (statuses)
515           and favorites of the authenticating user.
516
517           Returns: HashRef
518
519       add_list_member
520           Parameters: list_id, slug, user_id, screen_name, owner_screen_name,
521           owner_id
522           Required: none
523
524           Add a member to a list. The authenticated user must own the list to
525           be able to add members to it. Note that lists can't have more than
526           500 members.
527
528           Returns: User
529
530       add_place
531       add_place(name, contained_within, token, lat, long)
532           Parameters: name, contained_within, token, lat, long,
533           attribute:street_address, callback
534           Required: name, contained_within, token, lat, long
535
536           Creates a new place object at the given latitude and longitude.
537
538           Before creating a place you need to query "similar_places" with the
539           latitude, longitude and name of the place you wish to create. The
540           query will return an array of places which are similar to the one
541           you wish to create, and a token.  If the place you wish to create
542           isn't in the returned array you can use the token with this method
543           to create a new one.
544
545           Returns: Place
546
547       all_subscriptions
548       alias: all_lists
549       alias: list_subscriptions
550           Parameters: user_id, screen_name, count, cursor
551           Required: none
552
553           Returns all lists the authenticating or specified user subscribes
554           to, including their own. The user is specified using the user_id or
555           screen_name parameters.  If no user is given, the authenticating
556           user is used.
557
558           Returns: ArrayRef[List]
559
560       block_exists
561       block_exists(id)
562           Parameters: id, user_id, screen_name, include_entities
563           Required: id
564
565           Returns if the authenticating user is blocking a target user. Will
566           return the blocked user's object if a block exists, and error with
567           HTTP 404 response code otherwise.
568
569           Returns: BasicUser
570
571       blocking
572           Parameters: page, include_entities
573           Required: none
574
575           Returns an array of user objects that the authenticating user is
576           blocking.
577
578           Returns: ArrayRef[BasicUser]
579
580       blocking_ids
581           Parameters: none
582           Required: none
583
584           Returns an array of numeric user ids the authenticating user is
585           blocking.
586
587           Returns: ArrayRef[Int]
588
589       contributees
590           Parameters: user_id, screen_name, include_entities, skip_satus
591           Required: none
592
593           Returns an array of users that the specified user can contribute
594           to.
595
596           Returns: ArrayRef[User]
597
598       contributors
599           Parameters: user_id, screen_name, include_entities, skip_satus
600           Required: none
601
602           Returns an array of users who can contribute to the specified
603           account.
604
605           Returns: ArrayRef[User]
606
607       create_block
608       create_block(id)
609           Parameters: id, user_id, screen_name, include_entities
610           Required: id
611
612           Blocks the user specified in the ID parameter as the authenticating
613           user.  Returns the blocked user when successful.  You can find out
614           more about blocking in the Twitter Support Knowledge Base.
615
616           Returns: BasicUser
617
618       create_favorite
619       create_favorite(id)
620           Parameters: id, include_entities
621           Required: id
622
623           Favorites the status specified in the ID parameter as the
624           authenticating user.  Returns the favorite status when successful.
625
626           Returns: Status
627
628       create_friend
629       create_friend(id)
630       alias: follow_new
631           Parameters: id, user_id, screen_name, follow, include_entities
632           Required: id
633
634           Befriends the user specified in the ID parameter as the
635           authenticating user.  Returns the befriended user when successful.
636           Returns a string describing the failure condition when
637           unsuccessful.
638
639           Returns: BasicUser
640
641       create_list
642           Parameters: list_id, slug, name, mode, description,
643           owner_screen_name, owner_id
644           Required: none
645
646           Creates a new list for the authenticated user. Note that you can't
647           create more than 20 lists per account.
648
649           Returns: List
650
651       create_saved_search
652       create_saved_search(query)
653           Parameters: query
654           Required: query
655
656           Creates a saved search for the authenticated user.
657
658           Returns: SavedSearch
659
660       delete_list
661           Parameters: owner_screen_name, owner_id, list_id, slug
662           Required: none
663
664           Deletes the specified list. The authenticated user must own the
665           list to be able to destroy it.
666
667           Returns: List
668
669       delete_list_member
670       alias: remove_list_member
671           Parameters: list_id, slug, user_id, screen_name, owner_screen_name,
672           owner_id
673           Required: none
674
675           Removes the specified member from the list. The authenticated user
676           must be the list's owner to remove members from the list.
677
678           Returns: User
679
680       destroy_block
681       destroy_block(id)
682           Parameters: id, user_id, screen_name
683           Required: id
684
685           Un-blocks the user specified in the ID parameter as the
686           authenticating user.  Returns the un-blocked user when successful.
687
688           Returns: BasicUser
689
690       destroy_direct_message
691       destroy_direct_message(id)
692           Parameters: id, include_entities
693           Required: id
694
695           Destroys the direct message specified in the required ID parameter.
696           The authenticating user must be the recipient of the specified
697           direct message.
698
699           Returns: DirectMessage
700
701       destroy_favorite
702       destroy_favorite(id)
703           Parameters: id, include_entities
704           Required: id
705
706           Un-favorites the status specified in the ID parameter as the
707           authenticating user.  Returns the un-favorited status.
708
709           Returns: Status
710
711       destroy_friend
712       destroy_friend(id)
713       alias: unfollow
714           Parameters: id, user_id, screen_name, include_entities
715           Required: id
716
717           Discontinues friendship with the user specified in the ID parameter
718           as the authenticating user.  Returns the un-friended user when
719           successful.  Returns a string describing the failure condition when
720           unsuccessful.
721
722           Returns: BasicUser
723
724       destroy_saved_search
725       destroy_saved_search(id)
726           Parameters: id
727           Required: id
728
729           Destroys a saved search. The search, specified by "id", must be
730           owned by the authenticating user.
731
732           Returns: SavedSearch
733
734       destroy_status
735       destroy_status(id)
736           Parameters: id, trim_user, include_entities
737           Required: id
738
739           Destroys the status specified by the required ID parameter.  The
740           authenticating user must be the author of the specified status.
741
742           Returns: Status
743
744       direct_messages
745       direct_messages(include_entities)
746           Parameters: since_id, max_id, count, page, include_entities
747           Required: include_entities
748
749           Returns a list of the 20 most recent direct messages sent to the
750           authenticating user including detailed information about the
751           sending and recipient users.
752
753           Returns: ArrayRef[DirectMessage]
754
755       disable_notifications
756       disable_notifications(id)
757           Parameters: id, screen_name, include_entities
758           Required: id
759
760           Disables notifications for updates from the specified user to the
761           authenticating user.  Returns the specified user when successful.
762
763           Returns: BasicUser
764
765       enable_notifications
766       enable_notifications(id)
767           Parameters: id, screen_name, include_entities
768           Required: id
769
770           Enables notifications for updates from the specified user to the
771           authenticating user.  Returns the specified user when successful.
772
773           Returns: BasicUser
774
775       end_session
776           Parameters: none
777           Required: none
778
779           Ends the session of the authenticating user, returning a null
780           cookie.  Use this method to sign users out of client-facing
781           applications like widgets.
782
783           Returns: Error
784
785       favorites
786           Parameters: id, page, include_entities
787           Required: none
788
789           Returns the 20 most recent favorite statuses for the authenticating
790           user or user specified by the ID parameter.
791
792           Returns: ArrayRef[Status]
793
794       followers_ids
795       followers_ids(id)
796           Parameters: id, user_id, screen_name, cursor
797           Required: id
798
799           Returns a reference to an array of numeric IDs for every user
800           following the specified user. The order of the IDs may change from
801           call to call. To obtain the screen names, pass the arrayref to
802           "lookup_users".
803
804           Use the optional "cursor" parameter to retrieve IDs in pages of
805           5000.  When the "cursor" parameter is used, the return value is a
806           reference to a hash with keys "previous_cursor", "next_cursor", and
807           "ids".  The value of "ids" is a reference to an array of IDS of the
808           user's followers. Set the optional "cursor" parameter to -1 to get
809           the first page of IDs.  Set it to the prior return's value of
810           "previous_cursor" or "next_cursor" to page forward or backwards.
811           When there are no prior pages, the value of "previous_cursor" will
812           be 0.  When there are no subsequent pages, the value of
813           "next_cursor" will be 0.
814
815           Returns: HashRef|ArrayRef[Int]
816
817       friends_ids
818       friends_ids(id)
819       alias: following_ids
820           Parameters: id, user_id, screen_name, cursor
821           Required: id
822
823           Returns a reference to an array of numeric IDs for every user
824           followed by the specified user. The order of the IDs is reverse
825           chronological.
826
827           Use the optional "cursor" parameter to retrieve IDs in pages of
828           5000.  When the "cursor" parameter is used, the return value is a
829           reference to a hash with keys "previous_cursor", "next_cursor", and
830           "ids".  The value of "ids" is a reference to an array of IDS of the
831           user's friends. Set the optional "cursor" parameter to -1 to get
832           the first page of IDs.  Set it to the prior return's value of
833           "previous_cursor" or "next_cursor" to page forward or backwards.
834           When there are no prior pages, the value of "previous_cursor" will
835           be 0.  When there are no subsequent pages, the value of
836           "next_cursor" will be 0.
837
838           Returns: HashRef|ArrayRef[Int]
839
840       friendship_exists
841       friendship_exists(user_a, user_b)
842       alias: relationship_exists
843       alias: follows
844           Parameters: user_id_a, user_id_b, screen_name_a, screen_name_b,
845           user_a, user_b
846           Required: user_a, user_b
847
848           Tests for the existence of friendship between two users. Will
849           return true if user_a follows user_b, otherwise will return false.
850
851           Use of "user_a" and "user_b" is deprecated.  It has been preserved
852           for backwards compatibility, and is used for the two-argument
853           positional form:
854
855               $nt->friendship_exists($user_a, $user_b);
856
857           Instead, you should use one of the named argument forms:
858
859               $nt->friendship_exists({ user_id_a => $id1, user_id_b => $id2 });
860               $nt->friendship_exists({ screen_name_a => $name1, screen_name_b => $name2 });
861
862           Consider using "show_friendship" instead.
863
864           Returns: Bool
865
866       friendships_incoming
867       friendships_incoming(cursor)
868           Parameters: cursor
869           Required: cursor
870
871           Returns an HASH ref with an array of numeric IDs in the "ids"
872           element for every user who has a pending request to follow the
873           authenticating user.
874
875           Returns: HashRef
876
877       friendships_outgoing
878       friendships_outgoing(cursor)
879           Parameters: cursor
880           Required: cursor
881
882           Returns an HASH ref with an array of numeric IDs in the "ids"
883           element for every protected user for whom the authenticating user
884           has a pending follow request.
885
886           Returns: HashRef
887
888       geo_id
889       geo_id(id)
890           Parameters: id
891           Required: id
892
893           Returns details of a place returned from the "reverse_geocode"
894           method.
895
896           Returns: HashRef
897
898       geo_search
899           Parameters: lat, long, query, ip, granularity, accuracy,
900           max_results, contained_within, attribute:street_address, callback
901           Required: none
902
903           Search for places that can be attached to a statuses/update. Given
904           a latitude and a longitude pair, an IP address, or a name, this
905           request will return a list of all the valid places that can be used
906           as the place_id when updating a status.
907
908           Conceptually, a query can be made from the user's location,
909           retrieve a list of places, have the user validate the location he
910           or she is at, and then send the ID of this location with a call to
911           statuses/update.
912
913           This is the recommended method to use find places that can be
914           attached to statuses/update. Unlike geo/reverse_geocode which
915           provides raw data access, this endpoint can potentially re-order
916           places with regards to the user who is authenticated. This approach
917           is also preferred for interactive place matching with the user.
918
919           Returns: HashRef
920
921       get_configuration
922           Parameters: none
923           Required: none
924
925           Returns the current configuration used by Twitter including
926           twitter.com slugs which are not usernames, maximum photo
927           resolutions, and t.co URL lengths.
928
929           It is recommended applications request this endpoint when they are
930           loaded, but no more than once a day.
931
932           Returns: HashRef
933
934       get_languages
935           Parameters: none
936           Required: none
937
938           Returns the list of languages supported by Twitter along with their
939           ISO 639-1 code. The ISO 639-1 code is the two letter value to use
940           if you include lang with any of your requests.
941
942           Returns: ArrayRef[Lanugage]
943
944       get_list
945           Parameters: list_id, slug, owner_screen_name, owner_id
946           Required: none
947
948           Returns the specified list. Private lists will only be shown if the
949           authenticated user owns the specified list.
950
951           Returns: List
952
953       get_lists
954       alias: list_lists
955           Parameters: user_id, screen_name, cursor
956           Required: none
957
958           Returns the lists of the specified (or authenticated) user. Private
959           lists will be included if the authenticated user is the same as the
960           user whose lists are being returned.
961
962           Returns: Hashref
963
964       get_privacy_policy
965           Parameters: none
966           Required: none
967
968           Returns Twitter's privacy policy.
969
970           Returns: HashRef
971
972       get_tos
973           Parameters: none
974           Required: none
975
976           Returns the Twitter Terms of Service. These are not the same as the
977           Developer Rules of the Road.
978
979           Returns: HashRef
980
981       home_timeline
982           Parameters: since_id, max_id, count, page, skip_user,
983           exclude_replies, contributor_details, include_rts,
984           include_entities, trim_user, include_my_retweet
985           Required: none
986
987           Returns the 20 most recent statuses, including retweets, posted by
988           the authenticating user and that user's friends. This is the
989           equivalent of /timeline/home on the Web.
990
991           Returns: ArrayRef[Status]
992
993       is_list_member
994           Parameters: owner_screen_name, owner_id, list_id, slug, user_id,
995           screen_name, include_entities, skip_status
996           Required: none
997
998           Check if the specified user is a member of the specified list.
999           Returns the user or undef.
1000
1001           Returns: Maybe[User]
1002
1003       is_list_subscriber
1004       alias: is_subscribed_list
1005           Parameters: owner_screen_name, owner_id, list_id, slug, user_id,
1006           screen_name, include_entities, skip_status
1007           Required: none
1008
1009           Check if the specified user is a subscriber of the specified list.
1010           Returns the user or undef.
1011
1012           Returns: Maybe[User]
1013
1014       list_members
1015           Parameters: list_id, slug, owner_screen_name, owner_id, cursor,
1016           include_entities, skip_status
1017           Required: none
1018
1019           Returns the members of the specified list. Private list members
1020           will only be shown if the authenticated user owns the specified
1021           list.
1022
1023           Returns: Hashref
1024
1025       list_memberships
1026           Parameters: user_id, screen_name, cursor, filter_to_owned_lists
1027           Required: none
1028
1029           Returns the lists the specified user has been added to. If user_id
1030           or screen_name are not provided the memberships for the
1031           authenticating user are returned.
1032
1033           Returns: Hashref
1034
1035       list_statuses
1036           Parameters: list_id, slug, owner_screen_name, owner_id, since_id,
1037           max_id, per_page, page, include_entities, include_rts
1038           Required: none
1039
1040           Returns tweet timeline for members of the specified list.
1041           Historically, retweets were not available in list timeline
1042           responses but you can now use the include_rts=true parameter to
1043           additionally receive retweet objects.
1044
1045           Returns: ArrayRef[Status]
1046
1047       list_subscribers
1048           Parameters: list_id, slug, owner_screen_name, owner_id, cursor,
1049           include_entities, skip_status
1050           Required: none
1051
1052           Returns the subscribers of the specified list. Private list
1053           subscribers will only be shown if the authenticated user owns the
1054           specified list.
1055
1056           Returns: Hashref
1057
1058       lookup_friendships
1059           Parameters: user_id, screen_name
1060           Required: none
1061
1062           Returns the relationship of the authenticating user to the comma
1063           separated list or ARRAY ref of up to 100 screen_names or user_ids
1064           provided. Values for connections can be: following,
1065           following_requested, followed_by, none.  Requires authentication.
1066
1067           Returns: ArrayRef
1068
1069       lookup_users
1070           Parameters: user_id, screen_name, include_entities
1071           Required: none
1072
1073           Return up to 100 users worth of extended information, specified by
1074           either ID, screen name, or combination of the two. The author's
1075           most recent status (if the authenticating user has permission) will
1076           be returned inline.  This method is rate limited to 1000 calls per
1077           hour.
1078
1079           This method will accept user IDs or screen names as either a comma
1080           delimited string, or as an ARRAY ref.  It will also accept
1081           arguments in the normal HASHREF form or as a simple list of named
1082           arguments.  I.e., any of the following forms are acceptable:
1083
1084               $nt->lookup_users({ user_id => '1234,6543,3333' });
1085               $nt->lookup_users(user_id => '1234,6543,3333');
1086               $nt->lookup_users({ user_id => [ 1234, 6543, 3333 ] });
1087               $nt->lookup_users({ screen_name => 'fred,barney,wilma' });
1088               $nt->lookup_users(screen_name => ['fred', 'barney', 'wilma']);
1089
1090               $nt->lookup_users(
1091                   screen_name => ['fred', 'barney' ],
1092                   user_id     => '4321,6789',
1093               );
1094
1095           Returns: ArrayRef[User]
1096
1097       members_create_all
1098       alias: add_list_members
1099           Parameters: list_id, slug, owner_screen_name, owner_id
1100           Required: none
1101
1102           Adds multiple members to a list, by specifying a reference to an
1103           array or a comma-separated list of member ids or screen names. The
1104           authenticated user must own the list to be able to add members to
1105           it. Note that lists can't have more than 500 members, and you are
1106           limited to adding up to 100 members to a list at a time with this
1107           method.
1108
1109           Returns: List
1110
1111       members_destroy_all
1112       alias: remove_list_members
1113           Parameters: list_id, slug, user_id, screen_name, owner_screen_name,
1114           owner_id
1115           Required: none
1116
1117           Removes multiple members from a list, by specifying a reference to
1118           an array of member ids or screen names, or a string of comma
1119           separated user ids or screen names.  The authenticated user must
1120           own the list to be able to remove members from it. Note that lists
1121           can't have more than 500 members, and you are limited to removing
1122           up to 100 members to a list at a time with this method.
1123
1124           Please note that there can be issues with lists that rapidly remove
1125           and add memberships. Take care when using these methods such that
1126           you are not too rapidly switching between removals and adds on the
1127           same list.
1128
1129           Returns: List
1130
1131       mentions
1132       alias: replies
1133           Parameters: since_id, max_id, count, page, trim_user, include_rts,
1134           include_entities
1135           Required: none
1136
1137           Returns the 20 most recent mentions (statuses containing @username)
1138           for the authenticating user.
1139
1140           Returns: ArrayRef[Status]
1141
1142       new_direct_message
1143       new_direct_message(user, text)
1144           Parameters: user, text, screen_name, user_id, include_entities
1145           Required: user, text
1146
1147           Sends a new direct message to the specified user from the
1148           authenticating user.  Requires both the user and text parameters.
1149           Returns the sent message when successful.  In order to support
1150           numeric screen names, the "screen_name" or "user_id" parameters may
1151           be used instead of "user".
1152
1153           Returns: DirectMessage
1154
1155       no_retweet_ids
1156           Parameters: none
1157           Required: none
1158
1159           Returns an ARRAY ref of user IDs for which the authenticating user
1160           does not want to receive retweets.
1161
1162           Returns: ArrayRef[UserIDs]
1163
1164       public_timeline
1165           Parameters: skip_user, trim_user, include_entities
1166           Required: none
1167
1168           Returns the 20 most recent statuses from non-protected users who
1169           have set a custom user icon.  Does not require authentication.
1170           Note that the public timeline is cached for 60 seconds so
1171           requesting it more often than that is a waste of resources.
1172
1173           If user credentials are provided, "public_timeline" calls are
1174           authenticated, so they count against the authenticated user's rate
1175           limit.  Use "->public_timeline({ authenticate => 0 })" to make an
1176           unauthenticated call which will count against the calling IP
1177           address' rate limit, instead.
1178
1179           Returns: ArrayRef[Status]
1180
1181       rate_limit_status
1182           Parameters: none
1183           Required: none
1184
1185           Returns the remaining number of API requests available to the
1186           authenticated user before the API limit is reached for the current
1187           hour.
1188
1189           Use "->rate_limit_status({ authenticate => 0 })" to force an
1190           unauthenticated call, which will return the status for the IP
1191           address rather than the authenticated user. (Note: for a web
1192           application, this is the server's IP address.)
1193
1194           Returns: RateLimitStatus
1195
1196       related_results
1197       related_results(id)
1198           Parameters: id
1199           Required: id
1200
1201           If available, returns an array of replies and mentions related to
1202           the specified status. There is no guarantee there will be any
1203           replies or mentions in the response. This method is only available
1204           to users who have access to #newtwitter.  Requires authentication.
1205
1206           Returns: ArrayRef[Status]
1207
1208       report_spam
1209       report_spam(id)
1210           Parameters: id, user_id, screen_name, include_entities
1211           Required: id
1212
1213           The user specified in the id is blocked by the authenticated user
1214           and reported as a spammer.
1215
1216           Returns: User
1217
1218       retweet
1219       retweet(id)
1220           Parameters: id, include_entities, trim_user
1221           Required: id
1222
1223           Retweets a tweet. Requires the id parameter of the tweet you are
1224           retweeting.  Returns the original tweet with retweet details
1225           embedded.
1226
1227           Returns: Status
1228
1229       retweeted_by
1230       retweeted_by(id)
1231           Parameters: id, count, page, trim_user, include_entities
1232           Required: id
1233
1234           Returns up to 100 users who retweeted the status identified by
1235           "id".
1236
1237           Returns: ArrayRef[User]
1238
1239       retweeted_by_ids
1240       retweeted_by_ids(id)
1241           Parameters: id, count, page, trim_user, include_entities
1242           Required: id
1243
1244           Returns the IDs of up to 100 users who retweeted the status
1245           identified by "id".
1246
1247           Returns: ArrayRef[User]
1248
1249       retweeted_by_me
1250           Parameters: since_id, max_id, count, page, trim_user,
1251           include_entities
1252           Required: none
1253
1254           Returns the 20 most recent retweets posted by the authenticating
1255           user.
1256
1257           Returns: ArrayRef[Status]
1258
1259       retweeted_by_user
1260       retweeted_by_user(id)
1261           Parameters: id, user_id, screen_name
1262           Required: id
1263
1264           Returns the 20 most recent retweets posted by the specified user.
1265           The user is specified using the user_id or screen_name parameters.
1266           This method is identical to "retweeted_by_me" except you can choose
1267           the user to view.  Does not require authentication, unless the user
1268           is protected.
1269
1270           Returns: ArrayRef
1271
1272       retweeted_to_me
1273           Parameters: since_id, max_id, count, page
1274           Required: none
1275
1276           Returns the 20 most recent retweets posted by the authenticating
1277           user's friends.
1278
1279           Returns: ArrayRef[Status]
1280
1281       retweeted_to_user
1282       retweeted_to_user(id)
1283           Parameters: id, user_id, screen_name
1284           Required: id
1285
1286           Returns the 20 most recent retweets posted by users the specified
1287           user follows. The user is specified using the user_id or
1288           screen_name parameters. This method is identical to
1289           "retweeted_to_me" except you can choose the user to view.  Does not
1290           require authentication, unless the user is protected.
1291
1292           Returns: ArrayRef
1293
1294       retweets
1295       retweets(id)
1296           Parameters: id, count, trim_user, include_entities
1297           Required: id
1298
1299           Returns up to 100 of the first retweets of a given tweet.
1300
1301           Returns: Arrayref[Status]
1302
1303       retweets_of_me
1304       alias: retweeted_of_me
1305           Parameters: since_id, max_id, count, page, trim_user,
1306           include_entities
1307           Required: none
1308
1309           Returns the 20 most recent tweets of the authenticated user that
1310           have been retweeted by others.
1311
1312           Returns: ArrayRef[Status]
1313
1314       reverse_geocode
1315       reverse_geocode(lat, long)
1316           Parameters: lat, long, accuracy, granularity, max_results
1317           Required: lat, long
1318
1319           Search for places (cities and neighborhoods) that can be attached
1320           to a statuses/update.  Given a latitude and a longitude, return a
1321           list of all the valid places that can be used as a place_id when
1322           updating a status.  Conceptually, a query can be made from the
1323           user's location, retrieve a list of places, have the user validate
1324           the location he or she is at, and then send the ID of this location
1325           up with a call to statuses/update.
1326
1327           There are multiple granularities of places that can be returned --
1328           "neighborhoods", "cities", etc.  At this time, only United States
1329           data is available through this method.
1330
1331           lat Required.  The latitude to query about.  Valid ranges are -90.0
1332               to +90.0 (North is positive) inclusive.
1333
1334           long
1335               Required. The longitude to query about.  Valid ranges are
1336               -180.0 to +180.0 (East is positive) inclusive.
1337
1338           accuracy
1339               Optional. A hint on the "region" in which to search.  If a
1340               number, then this is a radius in meters, but it can also take a
1341               string that is suffixed with ft to specify feet.  If this is
1342               not passed in, then it is assumed to be 0m.  If coming from a
1343               device, in practice, this value is whatever accuracy the device
1344               has measuring its location (whether it be coming from a GPS,
1345               WiFi triangulation, etc.).
1346
1347           granularity
1348               Optional.  The minimal granularity of data to return.  If this
1349               is not passed in, then "neighborhood" is assumed.  "city" can
1350               also be passed.
1351
1352           max_results
1353               Optional.  A hint as to the number of results to return.  This
1354               does not guarantee that the number of results returned will
1355               equal max_results, but instead informs how many "nearby"
1356               results to return.  Ideally, only pass in the number of places
1357               you intend to display to the user here.
1358
1359           Returns: HashRef
1360
1361       saved_searches
1362           Parameters: none
1363           Required: none
1364
1365           Returns the authenticated user's saved search queries.
1366
1367           Returns: ArrayRef[SavedSearch]
1368
1369       sent_direct_messages
1370           Parameters: since_id, max_id, page, count, include_entities
1371           Required: none
1372
1373           Returns a list of the 20 most recent direct messages sent by the
1374           authenticating user including detailed information about the
1375           sending and recipient users.
1376
1377           Returns: ArrayRef[DirectMessage]
1378
1379       show_direct_message
1380       show_direct_message(id)
1381           Parameters: id, include_entities
1382           Required: id
1383
1384           Returns a single direct message, specified by an id parameter. Like
1385           the "direct_messages" request, this method will include the user
1386           objects of the sender and recipient.  Requires authentication.
1387
1388           Returns: HashRef
1389
1390       show_friendship
1391       show_friendship(id)
1392       alias: show_relationship
1393           Parameters: source_id, source_screen_name, target_id,
1394           target_id_name
1395           Required: id
1396
1397           Returns detailed information about the relationship between two
1398           users.
1399
1400           Returns: Relationship
1401
1402       show_saved_search
1403       show_saved_search(id)
1404           Parameters: id
1405           Required: id
1406
1407           Retrieve the data for a saved search, by "id", owned by the
1408           authenticating user.
1409
1410           Returns: SavedSearch
1411
1412       show_status
1413       show_status(id)
1414           Parameters: id, trim_user, include_entities
1415           Required: id
1416
1417           Returns a single status, specified by the id parameter.  The
1418           status's author will be returned inline.
1419
1420           Returns: Status
1421
1422       show_user
1423       show_user(id)
1424           Parameters: id, screen_name, include_entities
1425           Required: id
1426
1427           Returns extended information of a given user, specified by ID or
1428           screen name as per the required id parameter.  This information
1429           includes design settings, so third party developers can theme their
1430           widgets according to a given user's preferences. You must be
1431           properly authenticated to request the page of a protected user.
1432
1433           Returns: ExtendedUser
1434
1435       similar_places
1436       similar_places(lat, long, name)
1437           Parameters: lat, long, name, contained_within,
1438           attribute:street_address, callback
1439           Required: lat, long, name
1440
1441           Locates places near the given coordinates which are similar in
1442           name.
1443
1444           Conceptually you would use this method to get a list of known
1445           places to choose from first. Then, if the desired place doesn't
1446           exist, make a request to "add_place" to create a new one.
1447
1448           The token contained in the response is the token needed to be able
1449           to create a new place.
1450
1451           Returns: HashRef
1452
1453       subscribe_list
1454           Parameters: owner_screen_name, owner_id, list_id, slug
1455           Required: none
1456
1457           Subscribes the authenticated user to the specified list.
1458
1459           Returns: List
1460
1461       subscriptions
1462           Parameters: user_id, screen_name, count, cursor
1463           Required: none
1464
1465           Obtain a collection of the lists the specified user is subscribed
1466           to, 20 lists per page by default. Does not include the user's own
1467           lists.
1468
1469           Returns: ArrayRef[List]
1470
1471       suggestion_categories
1472           Parameters: none
1473           Required: none
1474
1475           Returns the list of suggested user categories. The category slug
1476           can be used in the "user_suggestions" API method get the users in
1477           that category .  Does not require authentication.
1478
1479           Returns: ArrayRef
1480
1481       test
1482           Parameters: none
1483           Required: none
1484
1485           Returns the string "ok" status code.
1486
1487           Returns: Str
1488
1489       trends_available
1490           Parameters: lat, long
1491           Required: none
1492
1493           Returns the locations with trending topic information. The response
1494           is an array of "locations" that encode the location's WOEID (a
1495           Yahoo!  Where On Earth ID
1496           <http://developer.yahoo.com/geo/geoplanet/>) and some other human-
1497           readable information such as a the location's canonical name and
1498           country.
1499
1500           When the optional "lat" and "long" parameters are passed, the
1501           available trend locations are sorted by distance from that
1502           location, nearest to farthest.
1503
1504           Use the WOEID returned in the location object to query trends for a
1505           specific location.
1506
1507           Returns: ArrayRef[Location]
1508
1509       trends_current
1510       trends_current(exclude)
1511           Parameters: exclude
1512           Required: none
1513
1514           Returns the current top ten trending topics on Twitter.  The
1515           response includes the time of the request, the name of each
1516           trending topic, and query used on Twitter Search results page for
1517           that topic.
1518
1519           Returns: HashRef
1520
1521       trends_daily
1522           Parameters: date, exclude
1523           Required: none
1524
1525           Returns the top 20 trending topics for each hour in a given day.
1526
1527           Returns: HashRef
1528
1529       trends_location
1530       trends_location(woeid)
1531           Parameters: woeid
1532           Required: woeid
1533
1534           Returns the top 10 trending topics for a specific location. The
1535           response is an array of "trend" objects that encode the name of the
1536           trending topic, the query parameter that can be used to search for
1537           the topic on Search, and the direct URL that can be issued against
1538           Search.  This information is cached for five minutes, and therefore
1539           users are discouraged from querying these endpoints faster than
1540           once every five minutes.  Global trends information is also
1541           available from this API by using a WOEID of 1.
1542
1543           Returns: ArrayRef[Trend]
1544
1545       trends_weekly
1546           Parameters: date, exclude
1547           Required: none
1548
1549           Returns the top 30 trending topics for each day in a given week.
1550
1551           Returns: HashRef
1552
1553       unsubscribe_list
1554           Parameters: list_id, slug, owner_screen_name, owner_id
1555           Required: none
1556
1557           Unsubscribes the authenticated user from the specified list.
1558
1559           Returns: List
1560
1561       update
1562       update(status)
1563           Parameters: status, lat, long, place_id, display_coordinates,
1564           in_reply_to_status_id, trim_user, include_entities
1565           Required: status
1566
1567           Updates the authenticating user's status.  Requires the status
1568           parameter specified.  A status update with text identical to the
1569           authenticating user's current status will be ignored.
1570
1571           status
1572               Required.  The text of your status update. URL encode as
1573               necessary. Statuses over 140 characters will cause a 403 error
1574               to be returned from the API.
1575
1576           in_reply_to_status_id
1577               Optional. The ID of an existing status that the update is in
1578               reply to.  o Note: This parameter will be ignored unless the
1579               author of the tweet this parameter references is mentioned
1580               within the status text. Therefore, you must include @username,
1581               where username is the author of the referenced tweet, within
1582               the update.
1583
1584           lat Optional. The location's latitude that this tweet refers to.
1585               The valid ranges for latitude is -90.0 to +90.0 (North is
1586               positive) inclusive.  This parameter will be ignored if outside
1587               that range, if it is not a number, if geo_enabled is disabled,
1588               or if there not a corresponding long parameter with this tweet.
1589
1590           long
1591               Optional. The location's longitude that this tweet refers to.
1592               The valid ranges for longitude is -180.0 to +180.0 (East is
1593               positive) inclusive.  This parameter will be ignored if outside
1594               that range, if it is not a number, if geo_enabled is disabled,
1595               or if there not a corresponding lat parameter with this tweet.
1596
1597           place_id
1598               Optional. The place to attach to this status update.  Valid
1599               place_ids can be found by querying "reverse_geocode".
1600
1601           display_coordinates
1602               Optional. By default, geo-tweets will have their coordinates
1603               exposed in the status object (to remain backwards compatible
1604               with existing API applications).  To turn off the display of
1605               the precise latitude and longitude (but keep the contextual
1606               location information), pass "display_coordinates =" 0> on the
1607               status update.
1608
1609           Returns: Status
1610
1611       update_delivery_device
1612       update_delivery_device(device)
1613           Parameters: device
1614           Required: device
1615
1616           Sets which device Twitter delivers updates to for the
1617           authenticating user.  Sending none as the device parameter will
1618           disable IM or SMS updates.
1619
1620           Returns: BasicUser
1621
1622       update_friendship
1623       update_friendship(id)
1624           Parameters: id, user_id, screen_name, device, retweets
1625           Required: id
1626
1627           Allows you enable or disable retweets and device notifications from
1628           the specified user. All other values are assumed to be false.
1629           Requires authentication.
1630
1631           Returns: HashRef
1632
1633       update_list
1634           Parameters: list_id, slug, name, mode, description,
1635           owner_screen_name, owner_id
1636           Required: none
1637
1638           Updates the specified list. The authenticated user must own the
1639           list to be able to update it.
1640
1641           Returns: List
1642
1643       update_profile
1644           Parameters: name, email, url, location, description,
1645           include_entities
1646           Required: none
1647
1648           Sets values that users are able to set under the "Account" tab of
1649           their settings page. Only the parameters specified will be updated;
1650           to only update the "name" attribute, for example, only include that
1651           parameter in your request.
1652
1653           Returns: ExtendedUser
1654
1655       update_profile_background_image
1656       update_profile_background_image(image)
1657           Parameters: image, use
1658           Required: image
1659
1660           Updates the authenticating user's profile background image. The
1661           "image" parameter must be an arrayref with the same interpretation
1662           as the "image" parameter in the "update_profile_image" method.  The
1663           "use" parameter allows you to specify whether to use the  uploaded
1664           profile background or not. See that method's documentation for
1665           details.
1666
1667           Returns: ExtendedUser
1668
1669       update_profile_colors
1670           Parameters: profile_background_color, profile_text_color,
1671           profile_link_color, profile_sidebar_fill_color,
1672           profile_sidebar_border_color
1673           Required: none
1674
1675           Sets one or more hex values that control the color scheme of the
1676           authenticating user's profile page on twitter.com.  These values
1677           are also returned in the /users/show API method.
1678
1679           Returns: ExtendedUser
1680
1681       update_profile_image
1682       update_profile_image(image)
1683           Parameters: image
1684           Required: image
1685
1686           Updates the authenticating user's profile image.  The "image"
1687           parameter is an arrayref with the following interpretation:
1688
1689             [ $file ]
1690             [ $file, $filename ]
1691             [ $file, $filename, Content_Type => $mime_type ]
1692             [ undef, $filename, Content_Type => $mime_type, Content => $raw_image_data ]
1693
1694           The first value of the array ($file) is the name of a file to open.
1695           The second value ($filename) is the name given to Twitter for the
1696           file.  If $filename is not provided, the basename portion of $file
1697           is used.  If $mime_type is not provided, it will be provided
1698           automatically using LWP::MediaTypes::guess_media_type().
1699
1700           $raw_image_data can be provided, rather than opening a file, by
1701           passing "undef" as the first array value.
1702
1703           Returns: ExtendedUser
1704
1705       update_with_media
1706       update_with_media(status, media)
1707           Parameters: status, media[], possibly_sensitive,
1708           in_reply_to_status_id, lat, long, place_id, display_coordinates
1709           Required: status, media
1710
1711           Updates the authenticating user's status and attaches media for
1712           upload.
1713
1714           The "media[]" parameter is an arrayref with the following
1715           interpretation:
1716
1717             [ $file ]
1718             [ $file, $filename ]
1719             [ $file, $filename, Content_Type => $mime_type ]
1720             [ undef, $filename, Content_Type => $mime_type, Content => $raw_image_data ]
1721
1722           The first value of the array ($file) is the name of a file to open.
1723           The second value ($filename) is the name given to Twitter for the
1724           file.  If $filename is not provided, the basename portion of $file
1725           is used.  If $mime_type is not provided, it will be provided
1726           automatically using LWP::MediaTypes::guess_media_type().
1727
1728           $raw_image_data can be provided, rather than opening a file, by
1729           passing "undef" as the first array value.
1730
1731           The Tweet text will be rewritten to include the media URL(s), which
1732           will reduce the number of characters allowed in the Tweet text. If
1733           the URL(s) cannot be appended without text truncation, the tweet
1734           will be rejected and this method will return an HTTP 403 error.
1735
1736           Returns: Status
1737
1738       user_suggestions
1739       user_suggestions(category)
1740       alias: follow_suggestions
1741           Parameters: category, lang
1742           Required: category
1743
1744           Access the users in a given category of the Twitter suggested user
1745           list and return their most recent status if they are not a
1746           protected user. Currently supported values for optional parameter
1747           "lang" are "en", "fr", "de", "es", "it".  Does not require
1748           authentication.
1749
1750           Returns: ArrayRef
1751
1752       user_timeline
1753           Parameters: id, user_id, screen_name, since_id, max_id, count,
1754           page, skip_user, trim_user, include_entities, include_rts
1755           Required: none
1756
1757           Returns the 20 most recent statuses posted from the authenticating
1758           user. It's also possible to request another user's timeline via the
1759           id parameter. This is the equivalent of the Web /archive page for
1760           your own user, or the profile page for a third party.
1761
1762           Returns: ArrayRef[Status]
1763
1764       users_search
1765       users_search(q)
1766       alias: find_people
1767       alias: search_users
1768           Parameters: q, per_page, page, include_entities
1769           Required: q
1770
1771           Run a search for users similar to Find People button on
1772           Twitter.com; the same results returned by people search on
1773           Twitter.com will be returned by using this API (about being listed
1774           in the People Search).  It is only possible to retrieve the first
1775           1000 matches from this API.
1776
1777           Returns: ArrayRef[Users]
1778
1779       verify_credentials
1780       verify_credentials(include_entities)
1781           Parameters: include_entities
1782           Required: none
1783
1784           Returns an HTTP 200 OK response code and a representation of the
1785           requesting user if authentication was successful; returns a 401
1786           status code and an error message if not.  Use this method to test
1787           if supplied user credentials are valid.
1788
1789           Returns: ExtendedUser
1790

Search API Methods

1792       search
1793       search(q)
1794           Parameters: q, callback, lang, locale, rpp, page, since_id, until,
1795           geocode, show_user, result_type
1796           Required: q
1797
1798           Returns a HASH reference with some meta-data about the query
1799           including the "next_page", "refresh_url", and "max_id". The
1800           statuses are returned in "results".  To iterate over the results,
1801           use something similar to:
1802
1803               my $r = $nt->search($searh_term);
1804               for my $status ( @{$r->{results}} ) {
1805                   print "$status->{text}\n";
1806               }
1807
1808           Returns: HashRef
1809

ERROR HANDLING

1811       When "Net::Twitter::Lite" encounters a Twitter API error or a network
1812       error, it throws a "Net::Twitter::Lite::Error" object.  You can catch
1813       and process these exceptions by using "eval" blocks and testing $@:
1814
1815           eval {
1816               my $statuses = $nt->friends_timeline(); # this might die!
1817
1818               for my $status ( @$statuses ) {
1819                   #...
1820               }
1821           };
1822           if ( $@ ) {
1823               # friends_timeline encountered an error
1824
1825               if ( blessed $@ && $@->isa('Net::Twitter::Lite::Error' ) {
1826                   #... use the thrown error obj
1827                   warn $@->error;
1828               }
1829               else {
1830                   # something bad happened!
1831                   die $@;
1832               }
1833           }
1834
1835       "Net::Twitter::Lite::Error" stringifies to something reasonable, so if
1836       you don't need detailed error information, you can simply treat $@ as a
1837       string:
1838
1839           eval { $nt->update($status) };
1840           if ( $@ ) {
1841               warn "update failed because: $@\n";
1842           }
1843

AUTHENTICATION

1845       Net::Twitter::Lite currently supports both Basic Authentication and
1846       OAuth.  The choice of authentication strategies is determined by the
1847       options passed to "new" or the use of the "credentials" method.  An
1848       error will be thrown if options for both strategies are provided.
1849
1850   BASIC AUTHENTICATION
1851       To use Basic Authentication, pass the "username" and "password" options
1852       to "new", or call "credentials" to set them.  When Basic Authentication
1853       is used, the "Authorization" header is set on each authenticated API
1854       call.
1855
1856   OAUTH AUTHENTICATION
1857       To use OAuth authentication, pass the "consumer_key" and
1858       "consumer_secret" options to new.
1859
1860       Net::OAuth::Simple must be installed in order to use OAuth and an error
1861       will be thrown if OAuth is attempted without it.  Net::Twitter::Lite
1862       does not require Net::OAuth::Simple, making OAuth an optional feature.
1863
1864   OAUTH EXAMPLES
1865       See the "examples" directory included in this distribution for full
1866       working examples using OAuth.
1867
1868       Here's how to authorize users as a desktop app mode:
1869
1870         use Net::Twitter::Lite;
1871
1872         my $nt = Net::Twitter::Lite->new(
1873             consumer_key    => "YOUR-CONSUMER-KEY",
1874             consumer_secret => "YOUR-CONSUMER-SECRET",
1875         );
1876
1877         # You'll save the token and secret in cookie, config file or session database
1878         my($access_token, $access_token_secret) = restore_tokens();
1879         if ($access_token && $access_token_secret) {
1880             $nt->access_token($access_token);
1881             $nt->access_token_secret($access_token_secret);
1882         }
1883
1884         unless ( $nt->authorized ) {
1885             # The client is not yet authorized: Do it now
1886             print "Authorize this app at ", $nt->get_authorization_url, " and enter the PIN#\n";
1887
1888             my $pin = <STDIN>; # wait for input
1889             chomp $pin;
1890
1891             my($access_token, $access_token_secret, $user_id, $screen_name) =
1892                 $nt->request_access_token(verifier => $pin);
1893             save_tokens($access_token, $access_token_secret); # if necessary
1894         }
1895
1896         # Everything's ready
1897
1898       In a web application mode, you need to save the oauth_token and
1899       oauth_token_secret somewhere when you redirect the user to the OAuth
1900       authorization URL.
1901
1902         sub twitter_authorize : Local {
1903             my($self, $c) = @_;
1904
1905             my $nt = Net::Twitter::Lite->new(%param);
1906             my $url = $nt->get_authorization_url(callback => $callbackurl);
1907
1908             $c->response->cookies->{oauth} = {
1909                 value => {
1910                     token => $nt->request_token,
1911                     token_secret => $nt->request_token_secret,
1912                 },
1913             };
1914
1915             $c->response->redirect($url);
1916         }
1917
1918       And when the user returns back, you'll reset those request token and
1919       secret to upgrade the request token to access token.
1920
1921         sub twitter_auth_callback : Local {
1922             my($self, $c) = @_;
1923
1924             my %cookie = $c->request->cookies->{oauth}->value;
1925
1926             my $nt = Net::Twitter::Lite->new(%param);
1927             $nt->request_token($cookie{token});
1928             $nt->request_token_secret($cookie{token_secret});
1929             my $verifier = $c->req->param->{oauth_verifier};
1930
1931             my($access_token, $access_token_secret, $user_id, $screen_name) =
1932                 $nt->request_access_token(verifier => $verifier);
1933
1934             # Save $access_token and $access_token_secret in the database associated with $c->user
1935         }
1936
1937       Later on, you can retrieve and reset those access token and secret
1938       before calling any Twitter API methods.
1939
1940         sub make_tweet : Local {
1941             my($self, $c) = @_;
1942
1943             my($access_token, $access_token_secret) = ...;
1944
1945             my $nt = Net::Twitter::Lite->new(%param);
1946             $nt->access_token($access_token);
1947             $nt->access_token_secret($access_token_secret);
1948
1949             # Now you can call any Net::Twitter::Lite API methods on $nt
1950             my $status = $c->req->param('status');
1951             my $res = $nt->update({ status => $status });
1952         }
1953

SEE ALSO

1955       Net::Twitter::Lite::WithAPIv1_1
1956           With support for Twitter API v1.1
1957
1958       Net::Twitter::Lite::Error
1959           The "Net::Twitter::Lite" exception object.
1960
1961       <http://apiwiki.twitter.com/Twitter-API-Documentation>
1962           This is the official Twitter API documentation. It describes the
1963           methods and their parameters in more detail and may be more current
1964           than the documentation provided with this module.
1965
1966       LWP::UserAgent::POE
1967           This LWP::UserAgent compatible class can be used in POE based
1968           application along with Net::Twitter::Lite to provide concurrent,
1969           non-blocking requests.
1970

SUPPORT

1972       Please report bugs to "bug-net-twitter@rt.cpan.org", or through the web
1973       interface at <https://rt.cpan.org/Dist/Display.html?Queue=Net-Twitter>.
1974
1975       Join the Net::Twitter IRC channel at <irc://irc.perl.org/net-twitter>.
1976
1977       Follow perl_api: <http://twitter.com/perl_api>.
1978
1979       Track Net::Twitter::Lite development at
1980       <http://github.com/semifor/net-twitter-lite>.
1981

AUTHOR

1983       Marc Mims <marc@questright.com>
1984

CONTRIBUTORS

1986       Chris Page <chris@starforge.co.uk>
1987

LICENSE

1989       Copyright (c) 2013 Marc Mims
1990
1991       This library is free software; you can redistribute it and/or modify it
1992       under the same terms as Perl itself.
1993
1994
1995
1996perl v5.32.0                      2020-07-28           Net::Twitter::Lite(3pm)
Impressum