即使使用 offline_access,Facebook 访问 token 也会过期

标签 facebook oauth

用户通过将他们重定向到的 URL 在我的网站上登录 Facebook https://graph.facebook.com/oauth/authorize?client_id=116908145XXXXXX&display=page&scope=offline_access&redirect_uri=http://localhost:8000/account/services/?service=facebookcallback

在回调页面上,我使用收到的代码发出请求,以获取此 URL 上的访问 token

https://graph.facebook.com/oauth/access_token?code=2.3m2hLauQJpWTGFExUK6O3w__.3600.1290081600-100001796185871%7.....&format=json&redirect_uri=http%3A%2F%2Flocalhost%3A8000%2Faccount %2Fservices%2F%3Fservice%3Dfacebookcallback&client_id=116908145040447&scope=offline_access&client_secret=...

我得到的回应是这样的 access_token=116908145XXXXXX|2.3m2hLauQJpWTGFExUK6O3w__.3600.1290081600-100001796185871|S3MG...&expires=3912

从 token 中可以看出它有一个到期日期。

token 在请求后几个小时过期。如果我使用 scope=offline_access 发出请求,我不应该收到没有到期日期的访问 token 吗?

最佳答案

旧帖子,但信息可能对其他人有用。

Facebook 现在默认禁用 offline_access。如果您仍想使用它,则必须启用应用程序迁移。

迁移关闭后, token 将“短暂存在”,仅持续一两个小时。您可以通过向

https://graph.facebook.com/oauth/access_token?             
    client_id=APP_ID&
    client_secret=APP_SECRET&
    grant_type=fb_exchange_token&
    fb_exchange_token=EXISTING_ACCESS_TOKEN 

参见 this page了解更多详情

关于即使使用 offline_access,Facebook 访问 token 也会过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4214148/

相关文章:

database - 在 Facebook 图形 API 中,如何找到您所有的 friend 喜欢某个包含详细信息的特定页面?

Facebook、opengraph,它们是如何裁剪的?

iphone - 重置 Facebook 权限 iOS SDK

javascript - 客户聊天不适用于 React Messenger 客户聊天

c# - 无法加载引用中可见的程序集 (.DLL)

asp.net-mvc - MVC 4 openauth - 自定义数据存储

php - facebook graph api 没有返回足够的新闻提要详细信息来重建您在 facebook 主页上看到的内容

node.js - 使用相同的 JWT token 进行 MQTT 身份验证

oauth - 我们真的需要 client_secret 来获取 PKCE 流程上的 access_token 吗?

ruby-on-rails - Ruby on Rails 和 Twitter OAuth 的测试策略