使用Facebook android SDK ShareDialog。单击sharedialog的交叉按钮,使用onSuccess回调返回应用程序

使用Facebook android SDK ShareDialog。单击sharedialog的交叉按钮,使用onSuccess回调返回应用程序,android,facebook-sdk-4.x,Android,Facebook Sdk 4.x,我正在使用Facebook Android SDK 4.25版和ShareLinkContent、ShareDialog,代表用户使用我的应用程序发布到Facebook 这是当用户单击我的应用程序的共享功能时打开的对话框 如图所示,sharedialog中有两个十字图标。当我单击上十字图标时,sharedialog关闭,并调用onCancel回调 问题是,当我单击上下十字图标时,当我单击“发布”按钮时,成功回调将被调用。当用户在Facebook上分享帖子时,我想给他一些分数。但我在下十字图标上

我正在使用Facebook Android SDK 4.25版和ShareLinkContent、ShareDialog,代表用户使用我的应用程序发布到Facebook

这是当用户单击我的应用程序的共享功能时打开的对话框

如图所示,sharedialog中有两个十字图标。当我单击上十字图标时,sharedialog关闭,并调用onCancel回调

问题是,当我单击上下十字图标时,当我单击“发布”按钮时,成功回调将被调用。当用户在Facebook上分享帖子时,我想给他一些分数。但我在下十字图标上也获得了成功。怎么办?多谢各位

这是我正在使用的回调代码:-

shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {

    @Override
    public void onSuccess(Sharer.Result result) {

            Log.e(LOG_TAG, "Facebook share success " + result.getPostId());

    }

    @Override
    public void onCancel() {

            Log.e(LOG_TAG, "Facebook share cancel");

    }

    @Override
    public void onError(FacebookException error) {

            Log.e(LOG_TAG, "Facebook share error");

    }

});
shareDialog.registerCallback(callbackManager,new FacebookCallback()){
@凌驾
成功时公开作废(共享结果){
Log.e(Log_标签,“Facebook共享成功”+result.getPostId());
}
@凌驾
公开作废{
Log.e(Log_标签,“Facebook共享取消”);
}
@凌驾
public void onError(facebook异常错误){
Log.e(Log_标签,“Facebook共享错误”);
}
});

单击上十字时,实际上是在关闭自己的对话框,该对话框调用onCancel。但当点击下十字时,它实际上是在facebook视图中。因此,回调是从facebook返回的,而不是从您的对话框返回的。尝试:

@Override
public void onSuccess(Sharer.Result result) {
   Log.e(LOG_TAG, "Facebook share success " + result.getPostId());
   //Notice this post id in both, cross click and when the status is updated successfully
   //So, if you don't get a valid post id returned, you can count it as a cancel.
}

result.getPostId()在两种情况下都为空:点击鼠标右键和点击发布按钮。你能通过这个在facebook上发布任何东西吗。可能问题在于你的facebook集成,因为如果帖子成功更新,你会得到一个已定义的帖子ID。是的,facebook的帖子成功显示在timeline中。我也用另一个Facebook帐户进行了测试。@MukarramAli Brother我面临同样的问题,你有解决方案吗?