gpt4 book ai didi

facebook - 如何获得永不过期的 Facebook _Account_(即页面)访问 token ?

转载 作者:行者123 更新时间:2023-11-30 05:29:27 25 4
gpt4 key购买 nike

由于一些不幸的术语选择,这个主题很难用谷歌搜索,所以在我问我的问题之前,这里有一个快速的澄清:

Facebook 帐户(即一个人的顶级个人帐户)可以有子帐户(公司、品牌、名人等),不幸的是,Facebook 将其称为“帐户”。与这些“帐户”交互的端点位于 [user id]/accounts。出于这个问题的目的,我将这些称为“子帐户”

Facebook 声明和实际观察:

Facebook 在这篇文章 ( https://developers.facebook.com/roadmap/offline-access-removal/ ) 中说了一些事情:

  1. 有两种类型的 access_tokens:“长期用户 access_token 的有效期为 60 天,而短期用户 access_token 目前的有效期为 1 到 2 小时”实际观察: 似乎是真的。我的应用程序只做服务器端,所以我无法确认短类型。

  2. “如果 access_token 是从服务器端 OAuth 调用生成的,则默认情况下生成的 access_token 将具有更长的过期时间”实际观察:我的服务器端应用确实会生成更长的时间, 60 天到期。

  3. “当从...请求扩展的 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 ...如果您传递一个具有长期有效期的 access_token,端点将简单地将相同的 access_token 传回给您,而不会更改或延长到期时间”实际观察:我的情况并非如此。当我通过最初的 60 天 token 时,我会得到一个不同的 token 。此外,新的、不同的 token 根本不起作用。 FB 端点在尝试使用它时返回身份验证失败。

  4. “当用户授予应用程序 manage_pages 权限时,该应用程序能够通过查询 [用户 ID]/帐户来获取用户管理的页面的页面访问 token ...通过使用长期用户访问 token ,查询 [User ID]/accounts 端点现在将提供不会过期的页面访问 token 。” 实际观察:我的应用程序检索的页面访问 token (使用原始的、根的、60 天的 token )在 60 天后到期,而此时它们应该是无限的。根据 #3,我无法使用新的、不同的(据推测是扩展的)访问 token 进行尝试,因为它无效。

问题:

  1. 我的服务器端请求生成有效期为 60 天的 token 。请求扩展 token 应该回显相同的 token ,但事实并非如此。为什么不呢?

  2. 我取回的新的不同 token 根本不起作用。为什么不呢?

  3. 如果我的应用获得的原始访问 token 是 60 天的长类型,那么我使用它们检索的 PAGE 访问 token 应该不会过期。但它们确实会过期。为什么?

任何帮助将不胜感激!!!


版主注意事项:在因不够“面向代码”而禁用此问题之前,Facebook 将所有问题指向 Stack Exchange。 https://developers.facebook.com/support/如果我不能在这里问这个问题,那我去哪里问呢?


更新:官方支持的检查 token 有效性的方法是如下:

graph.facebook.com/debug_token?
input_token={token-to-inspect}
&access_token={app-token-or-admin-token}

当我使用此方法时,我为我的用户获得的应用程序 token 显示到期“0”,这是他们应该的。所以我猜他们是无限的。在 60 天过去之前,我不可能确定 FB 是否在用 "expires":0 说真话;

最佳答案

第一次发帖,多多包涵。

取自:https://developers.facebook.com/docs/facebook-login/access-tokens/

Even the long-lived access token will eventually expire. At any point, you can generate a new long-lived token by sending the person back to the login flow used by your app - note that the person will not actually need to login again, they have already authorized your app, so they will immediately redirect back to your app from the login flow with a refreshed token - how this appears to the person will vary based on the type of login flow that you are using, for example if you are using the JavaScript SDK, this will take place in the background, if you are using a server-side flow, the browser will quickly redirect to the Login Dialog and then automatically and immediately back to your app again.

After doing the above you will obtain a new short-lived token and then you need to perform the same exchange for a long-lived token as above.

当您尝试延长长期 token 时,Facebook 会向您发送一个短期刷新 token 。当您获得此刷新 token 时,它的使用方式与登录流程中的 token 用于从 Facebook 获取另一个扩展 token 的方式相同。

对于您的第三个问题,主页访问 token 必须使用主页管理员的用户 token ,以便您能够代表主页获得授权。如果您在刷新页面 token 时遇到问题,请检查有关重新验证的应用权限。

关于facebook - 如何获得永不过期的 Facebook _Account_(即页面)访问 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17282559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com