用户访问令牌,用于通过facebook图形进行搜索


User access token for search via facebook graph

根据此处给出的指令搜索公共信息(如https://graph.facebook.com/search?q=QUERY&type=OBJECT_type(需要具有有效的访问令牌。据我所知,访问令牌是指用户授权应用程序访问他的信息;但这正在侵蚀公众信息。如何获取应用程序访问令牌来搜索公共信息?

在该页面中,脸书自动将我的访问令牌添加到链接中作为

https://graph.facebook.com/search?q=watermelon&type=post&access_token=MY_ACCESS_TOKEN

我通过我的应用程序创建了一个访问令牌https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=secret_ID&grant_type=client_credentials

当我在url中使用生成的访问令牌时https://graph.facebook.com/search?q=watermelon&type=post&access_token=GENERATED_access_token,它给出一个错误

{
   "error": {
      "message": "A user access token is required to request this resource.",
      "type": "OAuthException"
   }
}
  1. 如何通过我的应用程序生成访问令牌
  2. 还是我需要通过自己的用户帐户生成访问令牌?如果是,如何
  3. 既然它是在搜索公众档案,脸书不应该每次搜索都需要授权,我可以生成一个永久访问令牌来执行不同的搜索吗

Graph API搜索界面在2013年第3季度的迁移中有一些更改。以下变更将于2013年7月10日生效:

图形API搜索更改除位置和页面外,所有搜索Graph API调用都需要应用程序访问令牌。将不再支持搜索应用程序。

https://developers.facebook.com/blog/post/2013/04/03/platform-updates--operation-developer-love/

用于使用搜索facebook图形API

http://graph.facebook.com/search?q=watermelon&type=后

您需要一个有效的用户访问令牌。用户访问令牌与应用程序访问令牌不同。当用户使用不同的访问权限(通常接近212个字母长(验证您的应用程序时,就会创建用户访问令牌。

2013年7月,图形API进行了更改,您需要拥有有效的用户访问令牌来搜索用户和帖子。用户访问令牌可以由您自己验证应用程序并为应用程序生成用户访问令牌来生成。

但问题仍然存在,我们应该如何为我们的应用程序生成用户应用程序令牌,而不让其他用户对我们的应用进行身份验证?

您请求的访问令牌看起来像"应用程序"访问令牌。此令牌不同于"用户"或"页面"访问令牌,用于不同的用途。

https://developers.facebook.com/docs/howtos/login/login-as-app/

这可用于修改应用程序的参数,创建和管理测试用户,或者阅读应用程序的见解。应用程序访问令牌也可以用于在上向Facebook发布内容代表已向您的应用

根据您实际尝试的操作,应用程序令牌可能是错误的OAuth形式。您的示例(使用术语"西瓜"搜索公共帖子(不需要OAuth令牌,因此您显然正在尝试不同类型的图搜索。如果不说你实际上想访问什么,就不可能真正正确地建议你。

但是,我猜您正试图访问需要特定用户权限的图形对象。如果是这种情况,那么您需要首先通过请求所需的权限范围来从该用户获得权限。

  • 获取用户OAuth访问令牌的过程(https://developers.facebook.com/docs/reference/dialogs/oauth/)
  • 可以请求的可能权限(范围((https://developers.facebook.com/docs/reference/login/)

这将为该用户提供一个短期访问令牌,允许您访问请求权限范围内的任何内容。

此令牌只会在用户登录您的应用程序后持续很短时间。它还可以升级为长期访问令牌

https://developers.facebook.com/docs/howtos/login/extending-tokens/

您不需要传递任何令牌来搜索公共信息(除非您想在用户上下文中搜索(。只需调用以下url即可查看url。请标记我使用了http而不是https。

http://graph.facebook.com/search?q=watermelon&type=后

但为了让我的答案更清楚——通过正确授予access_token,我可以调用上述url的https版本(https版本需要访问令牌(,它运行良好,没有任何问题。

如果您使用程序搜索,并且最终用户永远看不到搜索URL,则可以使用以下方法:

&access_token=app_id|app_secret

点击此处了解更多信息:https://developers.facebook.com/docs/facebook-login/access-tokens/