在Android上使用Facebook API创建自定义Wall Post

时间:2010-11-17 15:55:28

标签: android api facebook

我是Android上的Facebook API的新手,基本上,我正在尝试为我正在开发的应用程序创建自定义墙贴。 就像当你听Shazam一首歌时,你可以和你的朋友分享结果。 我相信我必须创建一个自定义附件。这是我设置附件的代码:

mPostButton.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        Bundle myParams = new Bundle();
        String attachment="{\"name\":\"Gran Turismo 5\"," +
           "\"href\":\"http://www.unknown.com/?lang=fr\"," +
           "\"caption\":\"Sony Computer Entertainment\",\"description\":" +
           "\"Une vidéo proposée par Cedemo.\",\"media\":" +
           "[{\"type\":\"image\",\"src\":" +
           "\"http://www.unknown.com/prepicture//thumb_title/15/15061_1.jpg\"," +
           "\"href\":\"http://www.unknown.com/?lang=fr\"}],\"properties\":" +
           "{\"Autre lien\":{\"text\":\"Cedemo\",\"href\":\"http://www.unknown.com\"}}}";
        myParams.putString("attachment", URLEncoder.encode(attachment);
        mFacebook.dialog(Option.this, "stream.publish",myParams,
                new SampleDialogListener());

然后,后来:

public class SampleDialogListener extends BaseDialogListener {

    public void onComplete(Bundle values) {
        final String postId = values.getString("post_id");
        if (postId != null) {
            Log.d("Facebook-Example", "Dialog Success! post_id=" + postId);
            mAsyncRunner.request(postId,values, new WallPostRequestListener());
        } else {
            Log.d("Facebook-Example", "No wall post made");
        }
    }
}

我没有写过附件String,这只是从这个论坛中提出的另一个问题进行的测试。无论如何,当我调用myAsync.request时,我的应用程序显示错误消息,我应该如何将附件传递给对话框? 希望我已经足够清楚了。

1 个答案:

答案 0 :(得分:3)

您确定需要设置自定义参数吗?听起来你只想将Facebook消息直接发布到墙上:你可以通过简单地将消息参数作为字符串传递来实现这一点 - 如果你想附加图像等,你只需要所有的JSON。在Facebook的页面上,它表示使用此API呼叫不会发布其他人可以在其Feed上看到的状态更新,它只会显示在他们的own wall上。如果您只想发布带有链接的消息,您应该能够使用mAsyncRunner(一旦您拥有有效的Facebook会话),就可以使用:

String message = "Post this to my wall";
Bundle parameters = new Bundle();        
parameters.putString("message", message);   
mAsyncRunner.request("me/feed", parameters, "POST", new WallPostRequestListener());

如果您发布了从Facebook获得的错误/响应代码,也可以提供帮助。