【发布时间】:2014-05-14 03:13:28
【问题描述】:
我将使用 Net::Twitter 的有效 Perl 脚本从 10.04 Ubuntu 系统复制到 12.04 Ubuntu 系统。它不再工作了。
我现在在运行时收到以下错误: Net::Twitter::Role::OAuth::get_authorization_url(): GET https://api.twitter.com/oauth/request_token failed: 500 handshakefailed at ok.pl line 22
当我尝试卷曲 URL 时,我得到了这个: 卷曲https://api.twitter.com/oauth/request_token 验证 oauth 签名和令牌失败
这似乎表明我可以顺利通过防火墙和网络代理。这是其中一个脚本的示例。我所有的 Twitter 脚本现在都会出现这个 500 错误。不过,我已经花了几个小时寻找修复程序,但我仍然不知道这是模块的 SSL 问题,还是与 Twitter 的连接问题。
FWIW,我 12.04 盒子上的 Net::Twitter 是最新的。我的 10.04 盒子上的 Net:Twitter 不是最新的。
感谢任何帮助。谢谢!
#!/usr/bin/env perl
use warnings;
use strict;
use Net::Twitter;
my $tweet = 'Greetings';
my $twitterconsumer = 'redacted';
my $twitterconsumersecret = 'redacted';
my $youraccesstoken;
my $youraccesstokensecret;
my $twitteraccesstoken = $youraccesstoken;
my $twitteraccesstokensecret = $youraccesstokensecret;
my $nt = Net::Twitter->new(
traits => [qw/API::RESTv1_1/, 'OAuth'],
consumer_key => $twitterconsumer,
consumer_secret => $twitterconsumersecret,
ssl => 1
);
if ($twitteraccesstoken && $twitteraccesstokensecret)
{
$nt->access_token($twitteraccesstoken);
$nt->access_token_secret($twitteraccesstokensecret);
}
unless ( $nt->authorized )
{
print "Authorize this app at ", $nt->get_authorization_url, " and enter the PIN#\n";
my $pin = <>; # wait for input
chomp $pin;
my($access_token, $access_token_secret, $user_id, $screen_name) = $nt->request_access_token(verifier => $pin);
print 'Access token: '.$access_token."\r\n".'Access Token Secret: '.$access_token_secret."\r\n";
exit();
}
$nt->update({ status => $tweet });
【问题讨论】: