2015-02-05 69 views
1

我想包括一個簡單的Facebook在我與Facebook的SDK應用程序共享對話框。 我不喜歡在共享教程中所描述的一切:https://developers.facebook.com/docs/android/share?localeAndroid的Facebook分享對話框回調

在onActivityResult回調我使用uiHelper回調

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    uiHelper.onActivityResult(requestCode, resultCode, data, new FacebookDialog.Callback() { 
     @Override 
     public void onError(FacebookDialog.PendingCall pendingCall, Exception error, Bundle data) { 
      Log.e("Activity", String.format("Error: %s", error.toString())); 
     } 

     @Override 
     public void onComplete(FacebookDialog.PendingCall pendingCall, Bundle data) { 
      boolean didCancel = FacebookDialog.getNativeDialogDidComplete(data); 
      String completionGesture = FacebookDialog.getNativeDialogCompletionGesture(data); 
      String postId = FacebookDialog.getNativeDialogPostId(data); 
      Log.i("Activity", "Success!"); 
     } 
    }); 

} 

didCancel始終是真實的 - 不要緊,如果我張貼在牆上或沒有。 completionGesture和postId始終爲空。 有沒有要求獲得用戶在牆上發佈的回調天氣的許可方式?

回答

1

從的javadoc - https://developers.facebook.com/docs/reference/android/current/class/FacebookDialog#getNativeDialogDidComplete - 如果本地對話框正常完成(沒有錯誤或異常),此方法將返回true。因此,如果用戶點擊共享/發佈按鈕或取消,則對話框會正常完成。只有當出現錯誤時,此方法纔會返回false。

至於完成手勢,請參閱Android共享文檔的處理響應部分 - https://developers.facebook.com/docs/android/share#linkshare-handlingresponses - 如果用戶使用Facebook登錄通過您的應用登錄,您將只會獲得這些字段。如果用戶未通過您的應用程序登錄,則不可用。