简体   繁体   English

适用于Android 4.1.0的Facebook SDK共享对话框取消

[英]Facebook SDK for Android 4.1.0 share dialog cancel

I'm implementing Facebook sharing feature in my app. 我正在我的应用程序中实现Facebook共享功能。 I took the code from the example https://developers.facebook.com/docs/sharing/android (Share Dialog) 我从示例https://developers.facebook.com/docs/sharing/android (共享对话框)中获取了代码

FacebookCallback is implementing 3 methods onSuccess, onCancel, onError. FacebookCallback正在实现3种方法onSuccess,onCancel,onError。

   shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
        @Override
        public void onSuccess(Sharer.Result result) {
            Timber.e("onSuccess " + result.getPostId());
        }

        @Override
        public void onCancel() {
            Timber.e("onCancel");

        }

        @Override
        public void onError(FacebookException e) {
            Timber.e("onError");
        }
    });

I want to know if user cancels share dialog instead of sharing content. 我想知道用户是否取消共享对话框而不是共享内容。 But for some reasons onSuccess is called and result.getPostId() is null in both cases if user successfully shares content or cancels dialog. 但是由于某些原因,如果用户成功共享内容或取消对话框,则在两种情况下均会调用onSuccess且result.getPostId()为null。 Why onCancel isn't called if user pressed back and why result.getPostId() is null even if post was shared successfully? 为什么即使用户成功共享也不会调用onCancel以及为什么result.getPostId()为null?

You will only get onCancel if the user has authorized your app (ie logged into Facebook via your app). 仅当用户已授权您的应用程序(即通过您的应用程序登录Facebook)时,您才会获得onCancel。

You will only get the postId if your app also has the publish_actions permission. 如果您的应用还具有publish_actions权限,则只会获得postId。

See https://developers.facebook.com/docs/android/troubleshooting#onsuccess 参见https://developers.facebook.com/docs/android/troubleshooting#onsuccess

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM