我在我的应用中实施了Facebook共享功能。我从示例https://developers.facebook.com/docs/sharing/android(共享对话框)
中获取了代码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?
答案 0 :(得分:2)
如果用户已授权您的应用(即通过您的应用登录Facebook),您将获得onCancel。
如果您的应用也具有publish_actions权限,则只会获得postId。
请参阅https://developers.facebook.com/docs/android/troubleshooting#onsuccess