Twitter流API-401未经授权


Twitter Stream API - 401 Unauthorized

我无法打开与Twitter Stream API的连接。无论我尝试什么,我唯一能得到的回应就是401 Unauthorized

我做了各种各样的测试,甚至使用了我在GitHub上找到的一些库。

即使在我的代码之外,使用cURL,我也无法使其工作。

$oauth = array( 
    'oauth_consumer_key' => $this->m_oauth_consumer_key,
    'oauth_nonce' => time(),
    'oauth_signature_method' => 'HMAC-SHA1',
    'oauth_token' => $this->m_oauth_token,
    'oauth_timestamp' => time(),
    'oauth_version' => '1.0'
);
$base_info = $this->buildBaseString($this->url, 'GET', $oauth);
$composite_key = rawurlencode($this->m_oauth_consumer_secret) . '&' . rawurlencode($this->m_oauth_token_secret);
$oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true));
$oauth['oauth_signature'] = $oauth_signature;
$header = $this->buildAuthorizationHeader($oauth);

这是我用于构建HTTP请求头和签名的代码。我尝试了很多不同的方法,但都没有成功。

有没有人能帮我的主意?

提前谢谢。

如果您在Linux上,请使用NTP服务器同步时间:

$ sudo ntpdate ntp.org

我今天试图使用node.js访问API,但出现了相同的错误。我的Windows还没有更新我的时钟,所以我的本地计算机时间关闭了一个小时(今天是夏令时开关)。当我改变它时,它又开始工作了。他们真的应该有一些比普通401更好的错误信息。

我也遇到了同样的问题。转到你的应用程序设置屏幕,将回拨URL更改为类似yoursite.com的内容。我不知道为什么,但一旦更改,你就不会再看到401错误了。