Facebook - 永久用户访问令牌

7
我的公司有一个企业Facebook账户,他们在不同的相册中发布活动照片。
我的要求是从Facebook相册获取所有照片并显示在我们公司的网站上。我能够提取照片,但用户访问令牌仅有效期为60天,这意味着每隔两个月,我都必须登录公司的企业Facebook账户,重新生成令牌并在我的应用程序中更新令牌。
有没有办法生成永久访问令牌?或者是否有一种在我的应用程序级别上重新生成令牌(而不显示登录对话框)的方法?
还有其他方法可以获取照片而不创建应用程序吗?

你可以获取一个永久令牌: https://dev59.com/1WQm5IYBdhLWcg3w-S6Y#17234650 - Josh
3个回答

2
迁移到Oauth 2.1,使用您的应用程序ID +应用程序密钥作为访问令牌实际上要简单得多。然后,您可以通过https://graph.facebook.com/v2.1/theO2/feed?access_token=app_id|app_secret访问提要(等等)。
(来自Facebook Access Tokens文档
引用:
还有另一种调用Graph API的方法,不需要使用生成的应用程序令牌。当您进行调用时,只需将您的应用程序ID和应用程序密钥作为access_token参数传递即可: http://graph.facebook.com/endpoint?key=value&access_token=app_id|app_secret 使用生成的访问令牌与此方法之间的选择取决于您隐藏应用程序密钥的位置。

4
我认为你提出的解决方案只适用于应用程序令牌,而不是用户令牌。 - rfc1484

2
你的问题涉及用户访问令牌。恐怕这些令牌永远不可能是永久的。然而,从你和Igy的讨论中,你似乎对获得页面访问令牌感到满意。可以参考我的Q/A: facebook: 永久页面访问令牌? 使用具有“manage_pages”权限的用户访问令牌查找Graph API /{pageId}?fields=access_token,得到的页面访问令牌应该是永久的。

0

你不应该能够使用Facebook页面的页面访问令牌吗?让其中一个管理员授予您的应用程序manage_pages权限,然后使用页面访问令牌从页面检索照片-如果通过服务器端oauth过程检索,则页面访问令牌不会过期。

在开发人员文档中有一个详细的作为页面登录指南 -


我也尝试了页面访问令牌。页面访问令牌同样有60天的过期时间。 - user2070392
如果您使用从服务器端OAuth过程中检索到的页面管理员的60天令牌检索页面访问令牌,则应该是无限的。 - Igy
如果您可以可靠地重新生成未返回无限长度页面访问令牌的问题,您应该提交错误报告。 - Igy
1
我按照以下步骤进行操作: https://www.facebook.com/dialog/oauth?client_id=<CLIENT_ID>&scope=manage_pages&redirect_uri=<REDIRECT_URI>我从这个API调用中获取了代码。然后我按如下方式获取了令牌: https://graph.facebook.com/oauth/access_token?client_id=<CLIENT_ID>&redirect_uri=h<REDIRECT_URI>&client_secret=<CLIENT_SECREAT>&code=<CODE> 我使用访问令牌调试器验证了令牌。该令牌有效期为60天。为了获取页面令牌,我使用了以下网址: https://graph.facebook.com/me/accounts?access_token=<ACCESS_TOKEN> 我获得了我的应用程序页面的令牌。我在工具中验证了此令牌,它只有60天的有效期。 - user2070392
请告诉我是否按照正确的步骤获取了令牌。 感谢您的帮助,"Igy"。 - user2070392

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接