如何为没有app或app secret的页面获取Facebook访问令牌

Mik*_* K. 6 facebook graph token

我试图从另一个网站的Facebook页面自动显示墙上的帖子.我可以使用Graph API资源管理器手动获取一个.当我在代码中使用生成的令牌时,一切都很好.问题是令牌很快就会到期.每天多次获取新代码是不切实际的.我知道有一种方法可以以编程方式请求访问令牌 - 在我的情况下通过PHP,但所有示例都需要一个app秘密.由于这是一个页面而不是应用程序,因此没有秘密.

我试过这个:

https://graph.facebook.com/oauth/authorize?type=user_agent&client_id=MY_CLIENT_ID&redirect_uri=http%3A%2F%2FMY_SITE_URL&scope=user_status

我得到的是这个:

{"error":{"message":"验证应用程序时出错.由于系统错误而无法获取应用程序信息.","type":"OAuthException","code":101}}

我已经尝试使用Fiddler拦截来自Graph API资源管理器的调用,以查看我的代码文件中需要什么,但没有任何运气.

MPa*_*ulo 14

  1. 使用app-id构建此链接以授权管理页面 https://www.facebook.com/dialog/oauth?client_id=MY_CLIENT_ID&redirect_uri=MY_SITE_URL&scope=manage_pages&response_type=token

  2. perm的交换令牌(更长的令牌)
    https://graph.facebook.com/oauth/access_token?client_id=MY_CLIENT_ID&client_secret=MY_CLIENT_SECRET&grant_type=fb_exchange_token&fb_exchange_token=( from link1)

  3. 访问此页面,找到您要发布的PAGE并复制新的access_token https://graph.facebook.com/me/accounts?access_token=(来自link2)

  4. 使用此最后一个令牌(表单link3)作为app发布到页面

  5. 请注意,它将在60天后到期.(FB不再提供无限制的离线访问令牌)

编辑(2013年10月24日):第5点不再成立,页面访问由长期用户令牌生成的令牌不会过期.

编辑(2016年2月):令牌现在"通常"在60天后到期,但可以随时失效.


qod*_*nja 1

对于非私有(公共)的图形对象,您可以使用您的 app_id 作为 access_token。

您的 app_id 永远不会更改,因此您无需更新它。问题是墙上的内容是你的吗?

如果是这样,您可以轻松地使用您app_id来完成此操作,而不必每次都请求访问令牌。

但是,为了拥有 app_id,您需要使用 Facebook 开发者帐户在 Facebook 上创建应用程序。据我了解,没有办法匿名向 Graph API 发出请求,

  • 我尝试使用 app_id 作为访问令牌将数据发布到我的 Facebook 页面,但收到错误“OAuth 访问令牌无效。”。如果您有任何示例代码,请更新。 (5认同)