2013-02-05 163 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> 

樣品