Facebook SDK for Android 4.1.0 共享对话框取消

Posted

技术标签:

【中文标题】Facebook SDK for Android 4.1.0 共享对话框取消【英文标题】:Facebook SDK for Android 4.1.0 share dialog cancel 【发布时间】:2015-06-18 18:30:11 【问题描述】:

我正在我的应用中实现 Facebook 分享功能。我从示例https://developers.facebook.com/docs/sharing/android(共享对话框)中获取代码

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");
        
    );

我想知道用户是否取消了共享对话框而不是共享内容。但是由于某些原因,如果用户成功共享内容或取消对话,则在这两种情况下都会调用 onSuccess 并且 result.getPostId() 为 null。为什么如果用户按下后不会调用 onCancel,为什么即使帖子已成功分享,result.getPostId() 仍为 null?

【问题讨论】:

【参考方案1】:

只有在用户授权您的应用程序(即通过您的应用程序登录 Facebook)时,您才会获得 onCancel。

只有当您的应用也拥有 publish_actions 权限时,您才会获得 postId。

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

【讨论】:

以上是关于Facebook SDK for Android 4.1.0 共享对话框取消的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法知道用户使用 facebook SDK for Android 在 facebook 上有蓝色勾号?

Facebook SDK 3.7 for Android 请求电子邮件权限

Can't get Access Token for Facebook SDK 4.8.1 for Android (OR) FacebookCallback is not called (OR) r

Facebook Android SDK & java.lang.NullPointerException

Facebook SDK Unity 插件 - 移动应用广告跟踪

使用 facebook SDK for ios 6 实现 Facebook 注销