问题 我能够连接到Twitter的HybridAuth库,它停止工作。发布到Twitter帐户也是有效的。
我做过什么 重置我的Twitter应用访问令牌。 创建一个全新的Twitter应用程序。 使用HybridAuth调试模式进行故障排除。
错误消息 “身份验证失败。用户已取消身份验证或提供商拒绝连接。
原始错误消息:身份验证失败! Twitter返回了一个错误。 401未经授权。“
我的研究 这似乎归因于缺乏关键和秘密,但我在Twitter配置文件中设置了这些。
代码
$hybridauth = new Hybrid_Auth( $config );
$adapter = $hybridauth->authenticate( "Twitter" );
$hybridauth_session_data = $hybridauth->getSessionData();
store_session_data($hybridauth_session_data);
// get the user profile
$user_profile = $adapter->getUserProfile();
authenticate方法抛出了异常。之前它会要求我允许通过应用程序访问,现在它会抛出错误。
如果您需要更多信息,请告诉我们。 里克
答案 0 :(得分:5)
所以,这是发生了什么,你应该知道什么:
我如何修复它:
我使用USNO Master Clock将服务器时间设置为正确的时间。它碰巧只有超过15分钟的抵消。
答案 1 :(得分:3)
这只是我的另一种解决方案:
在Twitter应用中设置“回调网址”(如果您在本地测试,则可以使用示例网址。)
他们没有将此指定为必填字段,并且他们允许使用HybridAuth请求中的URL覆盖此URL。
答案 2 :(得分:0)
如果其他人也无法编辑他们的服务器时间,那么有一个解决方法。最基本也可能不是最干净的方法是去Hybrid / thirdparty / OAuth / OAuth.php找到generate_timestamp()函数,并在服务器和gtm + 0之间添加时间()。像这样:
private static function generate_timestamp() {
return time() + 7200;
}
在我的情况下,我的服务器是gtm-2,所以我必须在time()函数中添加2小时(以秒为单位)才能使其正常工作。