Facebook graph api 使用access\u令牌获取脱机更新

Facebook graph api 使用access\u令牌获取脱机更新,facebook-graph-api,permissions,access-token,Facebook Graph Api,Permissions,Access Token,我正在构建一个为Facebook用户提供新过滤器的应用程序。为了让这些过滤器发挥作用,我需要获取用户帖子(从他的墙上),所以我设法让他们通过他们的Facebook帐户登录,我正在存储他们的访问令牌,以便在实时更新到来时获得更新 问题是-当用户浏览我的页面时,每个请求都允许我进行一次Graph API调用(用户授予我的应用程序权限),但当我尝试进行第二次调用时(当用户正在阅读他最好的朋友的帖子时),Graph API仅返回有关该用户的公共信息,即使我提供了有效的访问令牌 我能做些什么来克服这个问题

我正在构建一个为Facebook用户提供新过滤器的应用程序。为了让这些过滤器发挥作用,我需要获取用户帖子(从他的墙上),所以我设法让他们通过他们的Facebook帐户登录,我正在存储他们的访问令牌,以便在实时更新到来时获得更新

问题是-当用户浏览我的页面时,每个请求都允许我进行一次Graph API调用(用户授予我的应用程序权限),但当我尝试进行第二次调用时(当用户正在阅读他最好的朋友的帖子时),Graph API仅返回有关该用户的公共信息,即使我提供了有效的访问令牌

我能做些什么来克服这个问题吗?我正在拨打的电话示例:

/1198448946?access_token=token

该令牌可以检查用户的电子邮件(我获得了所需的权限),但响应被剥夺。当我尝试在Graph API Explorer中使用相同的URI时,它返回了我想要的响应(使用相同的访问令牌!),但应用程序仍然只显示公共信息。

您需要做的第一件事是阅读以下内容:

简短的回答是,默认情况下您收到的令牌将是短期的(1-2小时)。Facebook已经删除了离线访问权限,但是你现在可以用短生命令牌交换长生命令牌(60天)。每次他们访问您的网站时,您都会更新此令牌,以获得额外的60天

此资源将帮助您了解访问令牌过期的原因。它还记录了当用户在场时检测到过期令牌时要采取的正确步骤。

谢谢,您提供的第二个链接很有帮助。完整答案是Facebook错误地描述了一些选项-我在应用程序中保存了应用程序机密和访问令牌,所以我在“客户端应用程序机密”中选择了“桌面/本机应用程序”和“是”。工作选项是:“Web应用”和将短期访问令牌交换为长期访问令牌。很好。如果他们决定将API稳定5分钟,他们可能会赶上文档的进度。;)