Android Facebook共享对话框回调

时间:2015-02-05 14:04:28

标签: android facebook share

我正试图在我的应用程序中使用Facebook sdk添加一个简单的Facebook共享对话框。 我做了共享教程中描述的所有内容:https://developers.facebook.com/docs/android/share?locale

在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永远是真的 - 如果我贴在墙上也无所谓。 completionGesture和postId始终为null。 有没有办法没有请求许可获得用户张贴在墙上的回叫天气?

1 个答案:

答案 0 :(得分:1)

来自javadocs - https://developers.facebook.com/docs/reference/android/current/class/FacebookDialog#getNativeDialogDidComplete - 如果本机对话框正常完成(没有错误或异常),此方法将返回true。因此,如果用户单击“共享/发布”按钮或“取消”,则对话框将正常完成。只有在出现错误时,此方法才会返回false。

至于完成手势,请参阅Android共享文档的处理响应部分 - https://developers.facebook.com/docs/android/share#linkshare-handlingresponses - 如果用户通过您的应用登录Facebook登录,您将只会获得这些字段。如果用户尚未通过您的应用登录,则无法使用。