在Android上使用Facebook API创建自定义墙贴

在Android上使用Facebook API创建自定义墙贴,android,api,facebook,Android,Api,Facebook,我不熟悉Android上的Facebook API,基本上,我正在尝试为我正在开发的应用程序创建自定义墙贴。 比如当你听一首歌,你可以和你的朋友分享结果。 我相信我必须创建一个自定义附件。以下是我设置附件的代码: mPostButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { Bundle myParams = new Bundle(); Strin

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

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");
        }
    }
}
我没有写附件字符串,它只是从这个论坛上提出的另一个问题的测试。无论如何,当我调用myAsync.request时,我的应用程序会显示一条错误消息,我应该如何将附件传递到对话框?
希望我说得够清楚。

您确定需要设置自定义参数吗?听起来你可以直接在墙上发布一条Facebook消息:你可以通过简单地将message参数作为字符串提交来实现这一点——如果你想附加一个图像等,你只需要所有的JSON。Facebook的页面上注意到,使用此api调用不会发布其他人可以在其提要上看到的状态更新,它只会出现在他们的屏幕上。如果您只想发布带有链接的消息,您应该能够使用您的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获得的错误/响应代码,也可能会有所帮助。

您的回答解决了我很多问题。出现问题,因为我没有在mAsyncRunner.request中指定POST。谢谢。