4

我正在尝试在 Facebook 页面的墙上发帖。我可以使用 App Access 令牌在用户墙上发帖。

我通过扩展 DefaultFacebookClient 获得了 App Access Token

public class ConnectionService extends DefaultFacebookClient{

public ConnectionService(String appId, String appSecret) {
    AccessToken accessToken = this.obtainAppAccessToken(appId, appSecret);
    this.accessToken = accessToken.getAccessToken();
}
}

有了这个,我可以使用 appID 和 appSecret 发布到用户墙。但是当我尝试发布到页面墙时,我收到“用户尚未授权应用程序执行此操作”的错误

任何人都可以建议吗?

4

4 回答 4

6

要在 Facebook 页面墙上发帖,您需要按照以下步骤操作:

  1. 前往https://developers.facebook.com/tools/explorer
  2. 点击“获取访问令牌”
  3. 在“扩展权限”选项卡下,选择选择 manage_pages 和 publish_actions 并点击“获取访问令牌”
  4. 现在在 Graph API 下,在 Get call 下,输入“me/accounts”并点击提交
  5. 在下面的屏幕中,您将看到带有所有页面和页面访问令牌的“数据”json 对象。
  6. 获取所需的页面令牌访问权限并将下面代码中的 PAGE_ACCESS_TOKEN 替换为此令牌。
  7. 将 PAGE_NAME 替换为您的页面名称(URL 中的页面名称 slug)。
  8. 运行下面的代码,这应该可以完成工作:)

final FacebookClient fb = new DefaultFacebookClient(PAGE_ACCESS_TOKEN); final Page page = facebookClient.fetchObject(PAGE_NAME, Page.class); facebookClient.publish("PAGE_NAME/feed", FacebookType.class, Parameter.with("message", "RestFB test"));

于 2014-12-08T16:30:50.127 回答
1

App Access Token 是最基本的,不允许您发布任何内容。为了向 Facebook 页面(作为页面)发布内容,您需要获取页面访问令牌。

这个过程有点复杂,因为你实际上需要先授权用户“manage_pages”权限,使用用户访问令牌可以调用API获取页面访问令牌(/me/accounts)。

查看这些链接:

顺便说一句,REST API 已被弃用:https ://developers.facebook.com/blog/post/616/

您也可以尝试“客户端令牌”(开发人员设置 > 高级),我从未使用过该令牌,但它可能是最简单的解决方案。在任何情况下,App Access Token 都是错误的。

于 2013-10-21T10:18:34.297 回答
0

确保您在验证用户时提到的范围也包括在内manage_pages。当您没有将它包含在您的范围中时,会发生此错误。参考这个

于 2013-10-21T10:17:36.627 回答
0

由于您从 java 类生成访问令牌。您可以在您的 Facebook 个人资料页面的管理应用程序链接中设置您需要的用户权限,并在此处获取访问令牌.....

于 2013-10-21T10:29:30.580 回答