2

我正在尝试在 Facebook 的应用页面上发表评论。我的应用程序是使用 spring MVC 用 java 编写的。我喜欢实现的功能是每当我从后台在我的页面上发布一些文本时,相同的消息就会发布在我的 Facebook 页面上。到目前为止,我已经为 Twitter 做到了这一点,而且效果很好。在 Facebook 上,我遇到了一个问题。据我所知,唯一几乎是最新的 API 是 RestFB。正如他们的示例所示,我尝试了以下操作:

FacebookClient facebookClient = new DefaultFacebookClient(MY_ACCESS_TOKEN);
FacebookType publishMessageResponse =
facebookClient.publish("me/feed", FacebookType.class,
Parameter.with("message", "RestFB test"));

我在https://developers.facebook.com上创建了我的应用程序,并从那里获得了访问令牌。但这导致了我没有正确权限的异常。我在网上搜索时遇到了一个帖子:Facebook:发送应用邀请

我也试过这个例子。结果是一样的,我没有正确的权限。我仔细检查了我给出的权限,并且所有相关的一次都被允许。

有人可以帮帮我吗。这个api是最新的吗?我查了一下,最后发布的日期是 2011 年 10 月,我知道 Facebook 在新年之后做了一些改变。此外还有其他更好的api吗?最后,如果有人知道如何做到这一点,他可以在这里发布一个例子。

@亚历山大@Tartoth

我现在正在与我自己的页面管理员一起发布,但它仍然给我一个错误。这是我用来发表评论的代码。我是新手,所以也许我做错了什么

String tokenUrl = "https://graph.facebook.com/oauth/access_token?client_id=" + appId + "&client_secret=" + appSecret
                + "&grant_type=client_credentials";
        HttpClient client = new HttpClient();
        HttpMethod method = new GetMethod(tokenUrl);

        client.executeMethod(method);
        String rawAccessToken = new String(method.getResponseBody());

        String accessToken = rawAccessToken.split("=")[1];

        FacebookClient facebookClient = new DefaultFacebookClient(accessToken);
        String to = appId +"/feed";

        facebookClient.publish(to, FacebookType.class,
                Parameter.with(msg, "RestFB test"));

更新:我解决了之前的问题。现在我的应用程序正在获取它的应用程序令牌,我可以使用它来发布消息,但问题是这些消息无法在它自己的应用程序页面上查看。我知道该消息已发布,因为我可以使用https://graph.facebook.com/publishedMessageId访问它。现在我的新问题是:

这是在应用页面上显示帖子的正确方法吗?这个问题的原因是,在应用程序页面上,当直接从 Facebook 打开它时,您只有更新状态。但是当我查看 RestFb api 时,没有关于如何更新应用程序状态的解释。

如果不是这样,有人可以向我解释如何将状态更新为应用程序。这意味着我想要完成的只是当我在我的 Web 应用程序上更改某些内容(就发布一些新闻而言)时,我希望我在我的 facebook 应用程序页面上的状态具有相同的新闻。

4

1 回答 1

1

您需要使用页面访问令牌发布,该令牌是授予应用程序“manage_pages”权限的用户(页面管理员)。

文档:https ://developers.facebook.com/docs/authentication/pages/

于 2012-03-26T17:20:16.323 回答