2015-06-15 166 views
2
ShareDialog shareDialog = new ShareDialog(this); 

shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { 
      @Override 
      public void onSuccess(Sharer.Result result) { 
       Toast.makeText(SharePage.this, "ok", Toast.LENGTH_SHORT).show(); 
      } 

      @Override 
      public void onCancel() { 
      } 

      @Override 
      public void onError(FacebookException error) { 
       Toast.makeText(SharePage.this, error.getMessage(), Toast.LENGTH_LONG).show(); 
      } 
     }); 

SharePhoto photo = new SharePhoto.Builder().setBitmap(bm).setCaption(description).build(); 
SharePhotoContent content = new SharePhotoContent.Builder().addPhoto(photo).build(); 
shareDialog.show(content); 

運行下面的代碼。 如果我在手機上有facebook應用程序,它會分享照片成功。 但是,如果我刪除Facebook應用程序,回調管理器返回錯誤「Unable to show the provided content via the web or the installed version of the Facebook app. Some dialogs are only supported starting API 14.使用facebook sdk共享照片4.2.0

+0

我該如何解決這個問題?任何人都可以幫助我?謝謝! – Frankie

+0

嗨弗蘭克,你有沒有解決這個問題?我在某些設備上遇到了同樣的問題,仍然沒有解決。你能幫我嗎? – NamNH

回答

3

如果您的設備中安裝了本機Facebook應用程序,則只能顯示此對話框。嘗試使用Facebook應用程序的設備中的相同代碼,它將起作用。 如果你想創建一個自定義對話框,你需要

-Build a custom interface that posts to the Graph API endpoint /me/feed 
-Implement Facebook Login in your app 
-Request the publish_actions permission when people log into your app 

下面是從你自己的接口發佈一個鏈接到Facebook的代碼:

ShareApi.share(content, null); 

讓我知道如果你需要任何幫助。 標記此答案接受,如果這有幫助。

+0

過去,我們可以使用WebDialog在沒有原生Facebook應用程序的情況下共享圖像。 facebook sdk 4.0之後,我們無法做到這一點? – Frankie

+0

ü仍然可以使用網頁對話框,但這是故事發布..其中鏈接,標題,名稱,說明參數在那裏...如果你想使用最新的方法available.follow我上面的指示... 請標記此答案接受,如果這有幫助.. :)並讓我知道如果你仍然有問題。 –

+0

在新版本sdk中,Session不可用。我怎樣才能使用網頁對話框? – Frankie