1

我想在没有用户干预的情况下在 facebook 墙上发布带有链接的预定义消息。我的意思是用户只需登录 facebook,我的预定义消息应该在用户的 facebook 墙上发布带有链接的链接。

下面是我的代码。

public class PostOnFacebookWall {
    public static void postOnWall(Facebook facebook , final Context context, final String placeName) {
        Bundle params = new Bundle();
        params.putString("message", placeName);
        facebook.dialog(context, "feed", params ,new DialogListener() {

            public void onFacebookError(FacebookError e) {
            }

            public void onError(DialogError e) {
            }

            public void onComplete(Bundle values) {
                Toast.makeText(context, placeName+" for today's hangout has been posted on your facebook wall. ", Toast.LENGTH_LONG).show();
            }

            public void onCancel() {
            }
        });
    }
}

我看过很多关于我的问题的链接,如下所示

http://stackoverflow.com/questions/11316683/adding-content-to-facebook-feed-dialog-with-new-facebook-sdk-for-android

它传递了所有参数,如“链接”、“描述”、“图像”等等。有人说你必须传递所有参数。我只想预先定义消息并链接。

我的信息应该是“Let's hangout at”,这里的 placeName 应该是一个链接。我想从我的代码中传递这个完整的消息。我不希望我的代码打开用户输入消息的对话框。

4

1 回答 1

1

如果您需要将预定义的消息发布到用户的 Facebook 墙上,则不应使用该 facebook.dialog方法。

有关为什么不应该使用它的更多信息,请阅读我在此处发布的答案:https ://stackoverflow.com/a/13507030/450534

话虽如此,要获得您想要的结果,请尝试以下代码:

Bundle postStatusMessage = new Bundle();

// ADD THE STATUS MESSAGE TO THE BUNDLE
postStatusMessage.putString("message", "Let's hangout at " + placeName);
postStatusMessage.putString("link", "www.the_example_web_address.com");

Utility.mAsyncRunner.request("me/feed", postStatusMessage, "POST", new StatusUpdateListener(), null);

在这里,您可以通过解析来检查来自 Facebook API 的响应String response

private class StatusUpdateListener extends BaseRequestListener  {

    @Override
    public void onComplete(String response, Object state) {

}

这里要注意的一点是,您不能传递message带有链接的 a。详细说明(因为前面的声明可能听起来令人困惑),您不能在message标签中传递一个链接,该链接将由 Facebook 解析并像 FB 上的链接一样显示在帖子中。

要清楚地看到差异,请使用上面的代码发布状态更新,并查看它在 Facebook 上的外观。然后,完成此操作后,postStatusMessage.putString("link", "www.the_example_web_address.com");从上面的代码中删除它并将链接包含在message标签中,发布它并查看它在 Facebook 上的外观。

于 2012-12-01T05:23:47.567 回答