Facebook Graph API - 使用'app access token'来获取Facebook页面提要(解决方案)

alk*_*ber 7 api facebook solution facebook-graph-api

嗯,这可能听起来很奇怪.当Facebook应用程序配置为本机/桌面应用程序(应用程序 - >您的APP->高级 - >应用程序类型)时,"应用程序访问令牌"从此过程获取

https://graph.facebook.com/oauth/access_token?"+"client_id ="+ APP_ID +"&client_secret ="+ APP_SEC +"&grant_type = client_credentials"

无法使用,从Facebook页面获取Feed或发布.根据facebook文档提取提要仅需要任何有效的access_token或用户access_token,如果应用程序配置为Native/Desktop,则奇怪的是它不会以这种方式工作.

1经过一天研究后发现的解决方案得出令人沮丧的结论,它必须在(应用程序 - >您的APP->高级 - >应用程序类型)中配置为"基于Web"的应用程序.

设置完成后,上面提取Feed的过程就可以了.这样就提出了一个问题,这是一个错误吗?或者我误解了文档.

我希望我为你节省了一天,如果你这几天一直在为facebook页面提供服务并且因为明显的原因而沮丧地脱掉你的头发.

[1] Facebook论坛帖子

use*_*515 1

这是有关使用应用程序访问令牌的相关文档

仅当发布功能直接源自您的服务器时才应使用应用程序访问令牌,以使其对应用程序保持私有。例如,您不应在客户端(例如本机移动应用程序)中使用应用程序访问令牌进行发布。这样做可以让个人获得应用程序访问令牌,然后他们可以代表您的应用程序执行操作。相反,您应该让本机移动应用程序将操作与服务器一起排队,然后让服务器使用应用程序访问令牌将故事发布到 Facebook。因此,如果您在“设置”>“高级”中的“应用程序类型”设置为“本机/桌面”,我们假设您的客户端应用程序在其二进制文件中包含应用程序密钥或应用程序访问令牌,并且不允许使用应用程序访问令牌以继续。API 的行为就像未提供访问令牌一样。

来源

另关于获取应用程序访问令牌

因为它要求您包含您的应用程序密钥,所以您不应尝试在客户端进行此调用,因为这会将此密钥暴露给所有应用程序用户。重要的是,您的应用程序秘密永远不会与任何人共享。因此,此调用应在服务器端执行 [...]

来源