我无法打开与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有什么想法可以帮助我吗?
提前谢谢。
答案 0 :(得分:6)
如果您使用的是Linux,请将时间与NTP服务器同步:
mup
答案 1 :(得分:1)
我今天尝试使用node.js访问API并遇到了同样的错误。我的Windows还没有更新我的时钟,所以我的本地计算机时间已经关闭了一个小时(今天的夏令时切换)。 当我改变它,它开始再次工作。 他们应该有一些比普通401更好的错误信息。
答案 2 :(得分:0)
我遇到了同样的问题。转到“应用程序设置”屏幕,将回拨URL更改为yoursite.com。我不确定为什么,但一旦你改变了,你将不再看到401错误。