无法使用facebook graph api获取长期访问令牌

Sta*_*Hat 16 facebook facebook-graph-api facebook-access-token

我刚开始将facebook整合到我正在处理的网站中,并按照以下说明尝试获取长期访问令牌:https://developers.facebook.com/docs/facebook-login/access-tokens/ 即使在这里使用Graph API资源管理器:https://developers.facebook.com/tools/explorer/ 我输入以下内容并使用我的AppID和AppSecret以及当我按下Get Access Token时得到的当前令牌填充它...

GET/oauth/access_token?
grant_type = fb_exchange_token&
client_id = {app-id}&client_secret = {app-secret}&fb_exchange_token = {short-lived-token}

我得到了回报

{"错误":"无效回复"}

有人可以详细说明我可能做错了什么,或者更详细的步骤,以便您获得这个长期令牌.

我试图关注这个帖子Facebook页面访问令牌中发生的事情- 这些过期了吗?没有更多的成功.任何帮助将不胜感激.

谢谢你的时间和帮助.干杯,

-Ryan

Sah*_*tal 22

你不能得到long-lived user token使用Graph API Explorer.您必须提出以下GET要求:

https://graph.facebook.com/oauth/access_token?
grant_type=fb_exchange_token&
client_id={app-id}& client_secret={app-secret}& fb_exchange_token={short-lived-token}
Run Code Online (Sandbox Code Playgroud)

您可以在浏览器中查看它.

如果您需要page access token,您可以拥有永不过期的令牌.在这里查看接受的答案:从服务器发送到Facebook粉丝页面获取持久令牌的步骤是什么


Sta*_*Hat 10

所以我想我会重新审视这个并提供我写的文档,希望能帮助其他人实现这一目标!

一个.创建应用程序

创建与您要访问的页面用户关联的应用程序.

两个.获取所需的信息片段

创建应用程序后,我们应该有两个关键信息:

应用ID: AAAAA (长度约为15个字符)

App Secret:BBBBB(大约应该约32个字符)

有了这些,请访问https://developers.facebook.com/tools/explorer 确保从顶部的下拉框中选择正确的应用程序.

单击获取访问令牌并获得"新鲜"令牌.

在这里,您需要为特定应用程序的目的选择适当的权限.

CCCCC(长度应约200个字符)

.获得长寿命令(2个月)

然后,您应该拥有运行查询以获取长期(2个月)令牌所需的信息:

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id= {app-id}&client_secret = {app-secret}&fb_exchange_token = {short-lived-token}

将{app-id},{app-secret}和{short-lived-token}替换为您目前已注意到的三位信息.

您应该收到如下请求:

https://graph.facebook.com/oauth/access_token?%20grant_type=fb_exchange_token&%20client_id=AAAAA&%20client_secret=BBBBB&%20fb_exchange_token=CCCCC

将此查询放入互联网浏览器的网址栏.您应该在窗口中看到如下所示的响应:

=的access_token&DDDDD到期= 5184000

DDDDD(应该长约 200个字符)

.测试令牌(第1部分)

如果将突出显示的部分输入到以下调试站点的输入中:

https://developers.facebook.com/tools/debug/

它应该给你约2个月的到期时间.

.获取非过期页面令牌

现在注意这个新的长实时令牌,我们将使用它来获取一个不会过期的令牌,除非关联的应用程序从用户的访问中删除或删除.在发出请求时,我们使用页面名称或最好使用page-id:

您可以使用http://findmyfacebookid.com/之类的内容获取您的Facebook页面ID. 我们将您的页面ID称为EEEEE

https://graph.facebook.com/ {page-id} /?fields = access_token&access_token = {long-live-token}

您应该收到如下请求:

https://graph.facebook.com/EEEEE/?fields=access_token&access_token=DDDDD

这将返回如下内容:{"access_token":"FFFFF","id":"131062838468"}

FFFFF(长度应为~200个字符)

.测试令牌(第2部分)

获取突出显示的部分并将其输入调试页面,您应该得到一些显示令牌永不过期的内容,并且您已成功获取永不过期的页面令牌.

.举手击掌!

对于如何实现这一目标的长列表感到抱歉,但我发现最好只给出整个过程而不只是一个小片段.如果您发现这有用,或者您有更好的方法来实现任何步骤,请告诉我们.