2013-02-05 114 views
1

我正在使用Android的共享按钮来从我的应用程序分享一些东西到其他几个应用程序(Facebook,Twitter,Dropbox,Gmail等)。对于Facebook共享,我已经使用了这里描述的方法: http://www.integratingstuff.com/2010/10/14/integrating-facebook-into-an-android-application/使用Facebook-android-sdk的发布Feed对话框不起作用

一切正常,但这不是我想要的。通过使用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墙上,并在我的应用程序中添加了一条“消息发布到您的Facebook墙!”被显示。

而且,我试着用以下的来代替它:

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

但是又什么都没有发生。我已阅读(来自Facebook SDK的官方网站(例如site1)),这些是使用Feed对话框在Facebook上发布内容的方法,但没有适用于我的。我曾尝试使用Facebook SDK 3.0及其以前的版本,但没有任何结果。造成这种情况的问题是什么?

回答

1

试试这个

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

这对我的作品。

0

你跟着this documentation来设置一个App_id吗?在资源Stings.xml的

样品/价值观的AndroidManifest.xml

<application > 
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id"/> 
</application> 

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

样品