2013-02-21 35 views
3

如何在未將Facebook登錄按鈕放入我的應用程序中的情況下使用android sdk共享照片。 (我希望他們去Facebook應用程序授權並返回時,他們點擊分享按鈕,而不是先登錄然後點擊共享兩個步驟)。具體來說,我會做一個Facebook的開放圖形張貼到/我/照片,以便它會上傳到我的默認應用程序相冊。但是,即使用戶通過facebook身份驗證提示單擊時,我也會收到未登錄的會話錯誤。如何在不使用應用程序登錄按鈕的情況下通過Facebook android sdk分享照片

final Session session = Session.getActiveSession(); 


Session.openActiveSession(this, true, new Session.StatusCallback() { 

    @Override 
    public void call(final Session session, final SessionState state, 
      final Exception exception) { 
     Request request = Request.newUploadPhotoRequest(session, image, new Request.Callback() { 
      @Override 
      public void onCompleted(Response response) { 
        Toast.makeText(getApplicationContext(), "Fact shared", Toast.LENGTH_SHORT).show(); 
       } 
     }); 
     request.executeAsync(); 
    } 
}); 
+0

你能夠做到這一點嗎?我正在尋找完全相同的解決方案 – Casper 2013-12-23 18:16:37

回答

0

有幾個與你的代碼問題:

  1. 爲了發佈一個照片,你需要發佈的權限,這就需要另一個requestNewPublishPermissions叫你先打開會議之後。

  2. 您正在call()方法中立即提出請求,而不檢查是否session.isOpened()。這是有問題的,因爲:

    a。會話會經歷很多狀態(包括OPENING,OPENED, 等),所有這些狀態都會導致call()被調用,並且您可以在僅在OPENED或OPENED_TOKEN_UPDATED 狀態下發出請求;

    b。開啓 會話期間可能會有例外情況(如用戶取消),這可能導致會話關閉 。您需要使用 session.isOpened()檢查來保護您的請求。

相關問題