Почему я не могу получить доступ на запись Twitter для работы с Net :: Twitter :: OAuth? - PullRequest
1 голос
/ 02 августа 2009

Я зарегистрировал приложение в Twitter. Я использую Net :: Twitter :: OAuth для управления взаимодействием с Twitter.

Мне удалось перенаправить пользователя, чтобы он мог установить приложение в своей учетной записи Twitter. Приложение установлено с доступом для чтения и записи. У меня есть доступ для чтения, но мне не удалось отправить твит от его имени: Twitter возвращает, что вызов не авторизован.

Я использую собственную учетную запись Twitter для тестирования.

Вот код, который я использую (Perl & Catalyst):

# step 1: Redirect user to Twitter
my $client = Net::Twitter::OAuth->new(
traits          => ['OAuth'],
consumer_key    => Bargain->config->{'consumer_key'},
consumer_secret => Bargain->config->{'consumer_secret'},
);

my $url = $client->oauth->get_authorization_url({ callback => $callback_url});

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

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


# step 2 - After installing the app, Twitter redirects the user here
my $verifier = $c->req->params->{oauth_verifier};
my $oauth_token = $c->req->params->{oauth_token};

$client->request_token($client->request_token);
$client->request_token_secret($client->request_token_secret);

my($access_token, $access_token_secret) = 
    $client->request_access_token(verifier => $verifier);

# step 3 - With all the info, Access suer account
my $nt = Net::Twitter::OAuth->new(
     traits          => ['OAuth'], # 'API::REST', 
     consumer_key    => Bargain->config->{'consumer_key'},
     consumer_secret => Bargain->config->{'consumer_secret'},
);

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

if ( $nt->authorized ) {
    print "Authorized, sending tweets\n";
    print $nt->friends_timeline, "\n"; # OK

    $nt->update('First example'); # Does not work
}

Есть идеи, что мне не хватает или что я делаю не так?

1 Ответ

3 голосов
/ 02 августа 2009

документы для Net::Twitter::Oauth претензии:

Этот модуль устарел. Вместо этого используйте Net::Twitter.

Похоже, вы должны использовать Net::Twitter::Role::OAuth для современного кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...