使用facebook-android-sdk发布Feed对话框不起作用

时间:2013-02-05 14:17:49

标签: android facebook facebook-android-sdk

我正在使用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及其以前的版本,没有任何结果。引起这个问题的原因是什么?

2 个答案:

答案 0 :(得分:1)

试试这个

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

这适合我。

答案 1 :(得分:0)

您是否按照this documentation设置了App_id?

Resources / Values

中的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>