使用RestFB api发布到Facebook页面墙

我想张贴在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发布到用户墙。 但当我试图发布到Page Wall时,我收到“用户未授权应用程序执行此操作”的错误

有人可以建议吗?

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

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

看到这些链接:

顺便说一下,不推荐使用REST API: https : //developers.facebook.com/blog/post/616/

你也可以尝试“客户端令牌”(开发者设置>高级),我从来没有使用过那个,但它可能是最简单的解决方案。 在任何情况下,App Access令牌都是错误的。

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

  1. 前往https://developers.facebook.com/tools/explorer
  2. 点击“获取访问令牌”
  3. 在“扩展权限”选项卡下,选择“manage_pages”和“publish_actions”,然后单击“获取访问令牌”
  4. 现在在Graph API下,在Get call下,输入“me / accounts”并点击Submit
  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"));

确保在validation用户时提到的范围还包括manage_pages 。 如果未在范围中包含此错误,则会发生此错误。 请参阅此

因为你从java类生成访问令牌。 你可以从ur facebook个人资料页面设置你需要用户管理应用程序链接的权限,并获取访问令牌…..