Facebook - 永久用户访问令牌

Posted

技术标签:

【中文标题】Facebook - 永久用户访问令牌【英文标题】:Facebook - permanent user access token 【发布时间】:2013-01-29 17:13:30 【问题描述】:

我的公司有一个公司 Facebook 帐户,他们在不同的相册中发布活动图片。 我的要求是从 Facebook 相册中获取所有照片并在我们的公司网站上展示。我可以获取照片,但用户访问令牌的有效期仅为 60 天,这意味着每隔两个月我必须登录公司的公司 Facebook 帐户,重新生成令牌并在我的应用程序中更新令牌。

有没有办法生成永久访问令牌? 或者有什么方法可以在我的应用程序级别重新生成令牌(不显示登录对话框)?

有没有其他方法可以在不创建应用的情况下获取照片?

【问题讨论】:

您可以获得永久令牌:***.com/questions/17197970/… 【参考方案1】:

您的问题是关于用户访问令牌。恐怕这些永远不会是永久性的。但是,从您与 Igy 的讨论来看,您似乎对获取页面访问令牌感到满意。在那里查看我的问答:

facebook: permanent Page Access Token?

/pageId?fields=access_token 的查找图 API,使用具有 manage_pages 权限的用户访问令牌。生成的页面访问令牌应该是永久性的。

【讨论】:

【参考方案2】:

迁移到 Oauth 2.1 它实际上要简单得多 - 使用您的 App ID + App Secret 作为访问令牌 然后您可以通过https://graph.facebook.com/v2.1/theO2/feed?access_token=app_id|app_secret访问提要(等)

(来自Facebook documentation on Access Tokens)

还有另一种无需使用生成的应用令牌即可调用 Graph API 的方法。您可以在拨打电话时将您的应用 ID 和应用密码作为 access_token 参数传递:

http://graph.facebook.com/endpoint?key=value&access_token=app_id|app_secret 选择使用生成的访问令牌还是使用此方法取决于您将应用机密隐藏在何处。

【讨论】:

我认为您建议的解决方案仅适用于应用令牌,不适用于用户令牌。【参考方案3】:

难道您不能将页面访问令牌用于 Facebook 页面本身吗?让其中一位管理员授予您的应用 manage_pages 权限,然后使用页面访问令牌从页面中检索照片 - 如果通过服务器端 oauth 进程检索,页面访问令牌不会过期

开发者文档中有logging in as a page的详细指南-

【讨论】:

我也尝试了页面访问令牌。页面访问令牌也有 60 天的有效期 如果您使用从服务器端 oauth 进程中检索到的页面管理员的 60 天令牌来检索页面访问令牌,则它应该是无限的 如果您可以可靠地重现不返回无限长页面访问令牌的情况,您应该提交错误报告 我按照以下步骤操作:facebook.com/dialog/…> 我从这个 API 调用中获得了代码。然后我得到了如下令牌:graph.facebook.com/oauth/…> 我使用访问令牌调试器验证了令牌。令牌有效期为 60 天。为了获取页面令牌,我使用了 url:graph.facebook.com/me/accounts?access_token=<ACCESS_TOKEN> 我获得了我的应用页面的令牌。我在工具中验证了这个令牌,它的有效期只有 60 天。 如果我按照正确的步骤获取令牌,请告诉我。感谢您的帮助“Igy”

以上是关于Facebook - 永久用户访问令牌的主要内容,如果未能解决你的问题,请参考以下文章

facebook:永久页面访问令牌?

存储用户的 Facebook 访问令牌

Instagram 图形 API 访问令牌

Facebook Graph API:有应用访问令牌,需要用户访问令牌而无需交互

用于公共事件搜索的通用 Facebook 用户访问令牌

如何使用访问令牌获取 Facebook 用户 ID