【问题标题】:OAuth token Expires Time different between accountsOAuth 令牌过期时间因帐户而异
【发布时间】:2012-08-21 10:06:10
【问题描述】:

奇怪的问题,也许我在这里遗漏了一些东西。

在制作应用程序的过程中,当我使用我的凭据为我的应用程序获得许可时,我会获得一个为期 60 天的 OAuth 令牌。

但是,当我的客户使用他的帐户为他的应用获取 OAuth 令牌时,他会获得一个 2 小时的令牌。 [过期=6870]

我正在获取以下权限。

read_stream、publish_stream、user_groups

脚本保持不变,只是应用程序和帐户发生了变化。

我在这里错过了什么吗???

我看过他的应用设置,还是一样的。

【问题讨论】:

  • 将 offline_access 添加到列表中,它使我的客户端访问令牌过期 = 4682 甚至比以前更少。 (它给了我大约 357 天!)[相同的脚本没有变化]
  • 您使用哪种身份验证方式 - 客户端?如果是的话,这个token是短命的,你得自己换长命的,见developers.facebook.com/roadmap/offline-access-removal
  • 服务器端 1. 使用相同的脚本(删除了offline_access btw)我得到了 60 天,但我的客户,使用他创建的 fb 应用程序和他的凭据,他只得到 2 小时 2. 使用更新令牌=> ... grant_type=fb_exchange_token&fb_exchange_token=... 我收到错误“验证访问令牌时出错:会话已在 unix 时间过期” 3. 尝试这个 => stackoverflow.com/questions/5827901/… ... 我收到错误“(#200)此 API 调用需要一个有效的 app_id”,仅供参考,我不使用 SDK,只是简单的旧 curl 感谢您的帮助

标签: facebook api oauth


【解决方案1】:

首先,忘记“offline_access”,该权限自几个月以来已被弃用。

其次,也许这会对你有所帮助,它在几周前的一个项目中对我有用: How to extend access token validity since offline_access deprecation

也许您有 60 天的时间,因为您是应用程序的管理员,但我不确定。事实上,现在一个普通的访问令牌的有效期只有 2 小时。

【讨论】:

  • 请参考我上面的评论,1.我已经删除了offline_access,完全没有使用。仅供参考,我没有使用 SDK,只是 curl 2. 我登录下的应用程序进行测试,然后从我的网站授予该应用程序的权限。然后我在他的网站上安装了相同的应用程序,然后他从他在 fb 上的 fb 登录创建了一个应用程序,并授予了他的权限(服务器端),他获得了 2 小时令牌 3. 使用更新令牌 => "grant_type=fb_exchange_token&fb_exchange_token="我在他的网站上收到一个错误“会话已在 unix 时间过期”,我的网站正在那里获取新令牌 感谢您的帮助
  • 你应该看看 php sdk,它很容易处理,从 3.2.0 版开始,它包含一个函数“setExtendedAccessToken” - 用于扩展访问令牌
猜你喜欢
  • 1970-01-01
  • 2019-11-07
  • 2015-09-18
  • 2016-11-29
  • 2012-04-05
  • 2015-06-17
  • 1970-01-01
  • 2019-01-30
  • 1970-01-01
相关资源
最近更新 更多