使用Java在Facebook页面上发布应用程序生成的评论

时间:2012-03-26 15:23:00

标签: java facebook posting

我正在尝试在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: send an app invitation

我也试过这个例子。结果与我没有正确的权限相同。我仔细检查了我发出的权限,并允许所有相关的权限。

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

@Alexandre @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时,没有解释你如何更新应用程序状态。

如果不是这样,有人可以向我解释我如何更新应用程序的状态。意思是我想要完成的任务是当我在我的网络应用程序上更改某些内容时(在发布一些新闻方面)我希望我的Facebook应用程序页面上的状态具有相同的新闻。

1 个答案:

答案 0 :(得分:1)

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

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