首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HybridAuth Twitter失败401

HybridAuth Twitter失败401
EN

Stack Overflow用户
提问于 2013-01-30 00:10:55
回答 3查看 4.4K关注 0票数 4

问题I能够连接到Twitter的HybridAuth库,并且停止工作。在Twitter账户上发帖也是可行的。

我尝试过重置我的Twitter应用程序访问令牌。创建一个全新的Twitter应用程序。使用HybridAuth调试模式进行故障排除。

错误消息“身份验证失败。用户已取消身份验证或提供程序拒绝连接。

原始错误信息:身份验证失败!Twitter返回了一个错误。401未经授权。“

我的研究这似乎是由于缺少密钥和秘密,但我将这些设置在Twitter配置文件中。

代码

代码语言:javascript
复制
            $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();

此异常正由身份验证方法引发。之前,它会要求我允许通过应用程序访问,现在它抛出了错误。

如果你需要更多的信息,请告诉我。瑞克

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-06 16:37:00

下面是发生的事情和你应该知道的事情:

  1. Twitter跟踪当前时间
  2. 如果一个API身份验证请求来自一个服务器,该服务器声称它是Twitter时间的15分钟以外的时间,那么它将失败,导致401错误。

我是如何修正的:

我使用USNO主时钟将服务器时间设置为正确的时间。刚好超过了15分钟。

票数 5
EN

Stack Overflow用户

发布于 2015-10-13 08:45:08

这只是我的另一个解决方案:

在Twitter中设置了“回调URL”(如果您是在本地测试,可以使用一个示例URL)。

他们没有将此指定为强制字段,并且允许使用HybridAuth请求中的URL覆盖该URL。

票数 3
EN

Stack Overflow用户

发布于 2015-03-16 04:49:40

如果其他人也不能编辑他们的服务器时间,有一个解决办法。最基本、也可能是最不干净的方法就是使用混合/第三方/OAuth/OAuth.php来定位generate_timestamp()函数,并将服务器和gtm+0之间的时间添加到time()。就像这样:

代码语言:javascript
复制
private static function generate_timestamp() {
return time() + 7200;

}

在我的例子中,我的服务器是gtm-2,所以我必须在time()函数中添加2个小时(秒)才能工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14594503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档