2013-12-13 108 views
0

我想通過android facebook facebook向Facebook分享圖像。 分享文字和鏈接也可以正常工作,也可以上傳圖片。 我發現,如果他們在線或在用戶的相冊中,我只能發佈圖片。Android:通過Facebook API分享圖像

Bundle bundle = new Bundle(); 
    bundle.putParcelable("picture", b); 

    Request request = new Request(session, "me/photos", bundle, 
      HttpMethod.POST, new Request.Callback() { 
       @Override 
       public void onCompleted(Response response) { 
        String imageid = (String) response.getGraphObject() 
          .getProperty("id"); 
        share(session, text, imageid); 
       } 
      }); 

    RequestAsyncTask task = new RequestAsyncTask(request); 
    task.execute(); 

圖像標識是一個數字,如 「123456789908765345678」

執行後, 「共享」 之稱:

Bundle bundle = new Bundle(); 
    bundle.putString("caption", "some text"); 
bundle.putString("description", "Imageid:"+imageid); 
    bundle.putString("link", 
     "https://link.de"); 
    bundle.putString("name", "some text"); 
    bundle.putString("place", imageid); //It doesn't work for me 

    new WebDialog.FeedDialogBuilder(this, session,  bundle).build().show(); 

我不知道我做錯了。我只是想分享這個形象。

請幫助:)

回答

0

你必須與資源的ID的其他請求,以獲得圖像的URL上傳照片至Facebook相冊,你正試圖在共享對話框中引用。

所以,你應該做這樣的事情:

Callback callback = new Callback() { 

    @Override  
    public void onCompleted(Response response) { 

    if (response.getGraphObject() != null) { 
     String imageUrl = (String) response.getGraphObject().getProperty("picture"); 
     // call to your sharing method 
    share(session, text, imageUrl);        
     } 
    } 
}; 


Request request = new Request(Session.getActiveSession(), imageid, null, HttpMethod.GET,  callback); 
request.executeAsync(); 
+0

好的謝謝:) – user2988203

+0

如果這解決了你的問題,我認爲你應該接受答案。 – Sokol

0

可以使用

com.facebook.Request fbRequest = com.facebook.Request.newUploadPhotoRequest(session, image, callback); 
fbRequest.executeAsync(); 
+0

謝謝,但我已經知道了。我的問題是,那個bundle.putString(「place」,imageid);不會有任何影響.. – user2988203

相關問題