2015-02-05 4 views
1

Я пытаюсь включить простой диалог обмена Facebook в своем приложении с помощью sdk Facebook. Я сделал все, как описанный в разделе учебника: https://developers.facebook.com/docs/android/share?localeОбратный вызов диалогового окна Android Facebook

В onActivityResult Callback я использую функцию обратного вызова 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 всегда верно - не имеет значения, если я отправляю на стене или нет. completeGesture и postId всегда равны нулю. Есть ли способ, не запрашивая разрешения на получение обратного вызова, когда пользователь размещал его на стене или нет?

ответ

1

Из javadocs - https://developers.facebook.com/docs/reference/android/current/class/FacebookDialog#getNativeDialogDidComplete - этот метод вернет true, если собственный диалог завершен нормально (без ошибки или исключения). Поэтому, если пользователь нажимает кнопку «Share/Post» или «Отмена», диалог завершается в обычном режиме. Только когда есть ошибка, этот метод вернет false.

Что касается завершающего жестов, см. Раздел «Ответы на вопросы по обмену документами Android» - https://developers.facebook.com/docs/android/share#linkshare-handlingresponses - вы получите только эти поля, если пользователь выполнил вход в систему через Facebook через приложение. Он недоступен, если пользователь не зашел в систему через ваше приложение.

Смежные вопросы