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

时间:2012-02-25 18:06:24

标签: facebook api facebook-graph-api solution

嗯,这可能听起来很奇怪。当facebook应用程序配置为Native / Desktop应用程序(Apps->您的APP-> Advanced->应用程序类型)时,'app access token'将从此过程中获取

  

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->高级 - >应用程序类型)

设置完成后,上面提取Feed的过程就会起作用。这会引发一个问题,这是一个错误吗?或者我误解了文档。

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

[1] Facebook forum post

1 个答案:

答案 0 :(得分:1)

以下是有关使用应用访问令牌

的相关文档
  

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

Source

同样关于获取应用访问令牌

  

因为它要求您包含App Secret,所以不应尝试在客户端进行此调用,因为这会向所有应用用户公开此秘密。重要的是,您的App Secret永远不会与任何人共享。出于这个原因,这个调用应该在服务器端执行[...]

Source