phpman > perldoc > Net::Twitter::Role::OAuth(3pm)

Markdown | JSON | MCP    

NAME
    Net::Twitter::Role::OAuth - Net::Twitter role that provides OAuth instead of Basic
    Authentication

VERSION
    version 4.01043

SYNOPSIS
      use Net::Twitter;

      my $nt = Net::Twitter->new(
          traits          => ['API::RESTv1_1', 'OAuth'],
          consumer_key    => "YOUR-CONSUMER-KEY",
          consumer_secret => "YOUR-CONSUMER-SECRET",
      );

      # Do some Authentication work. See EXAMPLES

      my $tweets = $nt->friends_timeline;
      my $res    = $nt->update({ status => "I CAN HAZ OAUTH!" });

DESCRIPTION
    Net::Twitter::Role::OAuth is a Net::Twitter role that provides OAuth authentication instead of
    the default Basic Authentication.

    Note that this client only works with APIs that are compatible to OAuth authentication.

IMPORTANT
    Beginning with version 3.02, it is necessary for web applications to pass the "callback"
    parameter to "get_authorization_url". In the absence of a callback parameter, when the user
    authorizes the application a PIN number is displayed rather than redirecting the user back to
    your site.

EXAMPLES
    See the "examples" directory in this distribution for working examples of both desktop and web
    applications.

    Here's how to authorize users as a desktop app mode:

      use Net::Twitter;

      my $nt = Net::Twitter->new(
          traits          => ['API::RESTv1_1', 'OAuth'],
          consumer_key    => "YOUR-CONSUMER-KEY",
          consumer_secret => "YOUR-CONSUMER-SECRET",
      );

      # You'll save the token and secret in cookie, config file or session database
      my($access_token, $access_token_secret) = restore_tokens();
      if ($access_token && $access_token_secret) {
          $nt->access_token($access_token);
          $nt->access_token_secret($access_token_secret);
      }

      unless ( $nt->authorized ) {
          # The client is not yet authorized: Do it now
          print "Authorize this app at ", $nt->get_authorization_url, " and enter the PIN#\n";

          my $pin = <STDIN>; # wait for input
          chomp $pin;

          my($access_token, $access_token_secret, $user_id, $screen_name) = $nt->request_access_token(verifier => $pin);
          save_tokens($access_token, $access_token_secret); # if necessary
      }

      # Everything's ready

    In a web application mode, you need to save the oauth_token and oauth_token_secret somewhere
    when you redirect the user to the OAuth authorization URL.

      sub twitter_authorize : Local {
          my($self, $c) = @_;

          my $nt = Net::Twitter->new(traits => [qw/API::RESTv1_1 OAuth/], %param);
          my $url = $nt->get_authorization_url(callback => $callbackurl);

          $c->response->cookies->{oauth} = {
              value => {
                  token => $nt->request_token,
                  token_secret => $nt->request_token_secret,
              },
          };

          $c->response->redirect($url);
      }

    And when the user returns back, you'll reset those request token and secret to upgrade the
    request token to access token.

      sub twitter_auth_callback : Local {
          my($self, $c) = @_;

          my %cookie = $c->request->cookies->{oauth}->value;
          my $verifier = $c->req->params->{oauth_verifier};

          my $nt = Net::Twitter->new(traits => [qw/API::RESTv1_1 OAuth/], %param);
          $nt->request_token($cookie{token});
          $nt->request_token_secret($cookie{token_secret});

          my($access_token, $access_token_secret, $user_id, $screen_name)
              = $nt->request_access_token(verifier => $verifier);

          # Save $access_token and $access_token_secret in the database associated with $c->user
      }

    Later on, you can retrieve and reset those access token and secret before calling any Twitter
    API methods.

      sub make_tweet : Local {
          my($self, $c) = @_;

          my($access_token, $access_token_secret) = ...;

          my $nt = Net::Twitter->new(traits => [qw/API::RESTv1_1 OAuth/], %param);
          $nt->access_token($access_token);
          $nt->access_token_secret($access_token_secret);

          # Now you can call any Net::Twitter API methods on $nt
          my $status = $c->req->param('status');
          my $res = $nt->update({ status => $status });
      }

METHODS
    authorized
        Whether the client has the necessary credentials to be authorized.

        Note that the credentials may be wrong and so the request may fail.

    request_access_token(verifier => $verifier)
        Request the access token, access token secret, user id and screen name for this user. You
        must pass the PIN# (for desktop applications) or the "oauth_verifier" value, provided as a
        parameter to the oauth callback (for web applications) as $verifier.

        The user must have authorized this app at the url given by "get_authorization_url" first.

        Returns the access_token, access_token_secret, user_id, and screen_name in a list. Also sets
        them internally so that after calling this method, you can immediately call API methods
        requiring authentication.

    xauth($username, $password)
        Exchanges the $username and $password for access tokens. This method has the same return
        value as "request_access_token": access_token, access_token_secret, user_id, and screen_name
        in a list. Also, like "request_access_token", it sets the access_token and access_secret,
        internally, so you can immediately call API methods requiring authentication.

    get_authorization_url(callback => $callback_url)
        Get the URL used to authorize the user. Returns a "URI" object. For web applications, pass
        your applications callback URL as the "callback" parameter. No arguments are required for
        desktop applications ("callback" defaults to "oob", out-of-band).

    get_authentication_url(callback => $callback_url)
        Get the URL used to authenticate the user with "Sign in with Twitter" authentication flow.
        Returns a "URI" object. For web applications, pass your applications callback URL as the
        "callback" parameter. No arguments are required for desktop applications ("callback"
        defaults to "oob", out-of-band).

    access_token
        Get or set the access token.

    access_token_secret
        Get or set the access token secret.

    request_token
        Get or set the request token.

    request_token_secret
        Get or set the request token secret.

DEPRECATED METHODS
    oauth
        Prior versions used Net::OAuth::Simple. This method provided access to the contained
        Net::OAuth::Simple object. Beginning with Net::Twitter 3.00, the OAuth methods were
        delegated to Net::OAuth::Simple. They have since made first class methods.
        Net::Simple::OAuth is no longer used. A warning will be displayed when accessing OAuth
        methods via the <oauth> method. The "oauth" method will be removed in a future release.

    is_authorized
        Use "authorized" instead.

    oauth_authorization_url
        Use "get_authorization_url" instead.

    oauth_token
           $nt->oauth_token($access_token, $access_token_secret);

        Use "access_token" and "access_token_seccret" instead:

           $nt->access_token($access_token);
           $nt->access_token_secret($access_token_secret);

ACKNOWLEDGEMENTS
    This module was originally authored by Tatsuhiko Miyagawa as "Net::Twitter::OAuth", a subclass
    of the "Net::Twitter" 2.x. It was refactored into a Moose Role for use in "Net::Twitter" 3.0 and
    above by Marc Mims. Many thanks to Tatsuhiko for the original work on both code and
    documentation.

AUTHORS
    Marc Mims <marc AT questright.com>

    Tatsuhiko Miyagawa <miyagawa AT bulknews.net>

LICENSE
    This library is free software; you can redistribute it and/or modify it under the same terms as
    Perl itself.

SEE ALSO
    Net::Twitter, Net::Twitter::OAuth::Simple, Net::OAuth::Simple

Net::Twitter::Role::OAuth(3pm)
NAME VERSION SYNOPSIS DESCRIPTION IMPORTANT EXAMPLES METHODS
request_access_token(verifier => $verifier) xauth($username, $password) get_authorization_url(callback => $callback_url) get_authentication_url(callback => $callback_url)
DEPRECATED METHODS ACKNOWLEDGEMENTS AUTHORS LICENSE SEE ALSO

Generated by phpman v3.7.12 Author: Che Dong Under GNU General Public License
2026-06-13 20:18 @216.73.216.150
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!

^_back to top