1

我正在使用 Android 的分享按钮将我的应用程序中的某些内容分享到其他几个应用程序(Facebook、Twitter、Dropbox、Gmail 等)。对于 Facebook 分享,我完全使用了这里描述的方法:http: //www.integratingstuff.com/2010/10/14/integrating-facebook-into-an-android-application/

一切正常,但这不是我想要的。通过使用facebook.request("me/feed", parameters, "POST"),您只需将某些内容直接发布到用户的墙上,而无需要求确认。我想先显示一个 Feed 对话框,然后再将其发布到 Facebook 上。为此,我将包含此内容的代码替换为以下内容:

facebook.dialog(ShareOnFacebook.this , "feed", parameters, new DialogListener() {
               @Override
               public void onComplete(Bundle values) {}

               @Override
               public void onFacebookError(FacebookError error) {}

               @Override
               public void onError(DialogError e) {}

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

不幸的是,这不起作用。当我按下 Facebook 分享按钮时,它会打开 Facebook,登录后它会返回到我的应用程序,而不会发布任何内容,也不会出现错误。在我按下 Facebook 按钮之前,我的 Facebook 墙上发布了一些内容,我的应用程序中出现了一个 Toast,上面写着“消息已发布到您的 Facebook 墙上!” 显示。

另外,我尝试将其替换为以下内容:

WebDialog feedDialog = (
    new WebDialog.FeedDialogBuilder(ShareOnFacebook.this,
        Session.getActiveSession(),
        parameters))
    .setOnCompleteListener(null)
    .build();
feedDialog.show();

但又什么也没发生。我已经读过(从 Facebook SDK 的官方网站(例如site1)),这些是使用 Feed Dialog 在 Facebook 上发布内容的方法,但对我的没有任何作用。我曾尝试使用 Facebook SDK 3.0 和之前的版本,但没有任何结果。造成这种情况的问题是什么?

4

2 回答 2

1

尝试这个

    context.runOnUiThread(new Runnable()
    {
        @Override
        public void run() 
        {
            WebDialog feedDialog = new WebDialog.FeedDialogBuilder(context, Session.getActiveSession(), postParameter).build();
            feedDialog.show();
        }
    });

这对我有用。

于 2013-02-26T14:54:57.433 回答
0

您是否按照此文档设置了 App_id?

资源/值中的 Stings.xml 示例

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="app_id">APP_ID</string>
</resources>

AndroidManifest.xml 示例

<application >
  <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id"/>
</application>
于 2015-03-16T20:46:49.867 回答