我正在开发一款Android应用程序,该应用程序允许用户在Facebook上分享帖子。为了统计数据,我想知道用户是否成功分享了帖子或者决定取消分享。
问题:在没有publish_action权限的情况下,是否有办法检查使用Facebook SDK 4.5的ShareDialog是否已经成功分享了帖子?
ShareDialog打开Facebook App共享对话框,如果共享成功,则会调用回调函数中的onSuccess方法(或者如果用户取消共享对话框,则会调用onCancel)。问题在于,当用户在设备上没有安装Facebook应用程序时,ShareDialog将回退到默认浏览器进行共享,但在这种情况下,回调函数中的onSuccess方法总是被执行,即使用户点击了取消按钮!
我的当前代码如下:
这段代码运行良好,但需要
问题:在没有publish_action权限的情况下,是否有办法检查使用Facebook SDK 4.5的ShareDialog是否已经成功分享了帖子?
ShareDialog打开Facebook App共享对话框,如果共享成功,则会调用回调函数中的onSuccess方法(或者如果用户取消共享对话框,则会调用onCancel)。问题在于,当用户在设备上没有安装Facebook应用程序时,ShareDialog将回退到默认浏览器进行共享,但在这种情况下,回调函数中的onSuccess方法总是被执行,即使用户点击了取消按钮!
我的当前代码如下:
FacebookCallback<Sharer.Result> shareCallback = new FacebookCallback<Sharer.Result>() {
@Override
public void onCancel() {
Log.d(LOG_TAG, "fb SHARE canceled");
}
@Override
public void onError(FacebookException error) {
Log.d(LOG_TAG, "fb SHARE error");
}
@Override
public void onSuccess(Sharer.Result result) {
String postId = result.getPostId();
if (postId != null)
{
// record successful FB share
Log.d(LOG_TAG, "fb SHARE success");
}
}
}
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(this);
shareDialog.registerCallback(callbackManager, shareCallback);
这段代码运行良好,但需要
publish_actions
权限来检查postId
。有没有其他方法可以检查共享是否成功,而不需要从Facebook获取额外的(publish_actions
)权限(因为这太痛苦了)?