Twitter Stream API - 401未经授权

时间:2013-12-15 11:52:33

标签: php twitter websocket stream

我无法打开与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请求标头和签名的代码。我尝试了很多不同的方法,没有成功。

Anoyone有什么想法可以帮助我吗?

提前谢谢。

3 个答案:

答案 0 :(得分:6)

如果您使用的是Linux,请将时间与NTP服务器同步:

mup

答案 1 :(得分:1)

我今天尝试使用node.js访问API并遇到了同样的错误。我的Windows还没有更新我的时钟,所以我的本地计算机时间已经关闭了一个小时(今天的夏令时切换)。 当我改变它,它开始再次工作。 他们应该有一些比普通401更好的错误信息。

答案 2 :(得分:0)

我遇到了同样的问题。转到“应用程序设置”屏幕,将回拨URL更改为yoursite.com。我不确定为什么,但一旦你改变了,你将不再看到401错误。