我正在我的应用程序中实现Facebook共享功能 . 我从示例中获取了代码https://developers.facebook.com/docs/sharing/android(Share Dialog)
FacebookCallback正在onSuccess,onCancel,onError上实现3种方法 .
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()在两种情况下均为空 . 如果用户按下后为什么不调用onCancel,为什么即使成功共享帖子,result.getPostId()为null?
1 回答
如果用户已授权您的应用程序(即通过您的应用程序登录Facebook),您将只获得onCancel .
如果您的应用程序也具有publish_actions权限,您将只获得postId .
见https://developers.facebook.com/docs/android/troubleshooting#onsuccess