android - Facebook Messenger 对话框回调不起作用

标签 android facebook onactivityresult facebook-messenger

我在我的应用程序中实现了新的 Facebook Messenger 对话框来发送“邀请”:

builder = new FacebookDialog.MessageDialogBuilder(getActivity())
        .setLink("http://demo.fivestarday.se/tidningsklippet/index.html")
        .setName("Inbjudan till Tidningsklippet")
        .setCaption("Inbjudan till Tidningsklippet")
        .setDescription("Du har blivit inbjuden till tidningsklippet med inbjudningskod:")      
        .setFragment(this);

...

FacebookDialog dialog = builder.build();
                    dialog.present();

这将按预期工作,并显示 Facebook Messenger 应用程序并允许用户发送消息。

但是当我想捕获回调时:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        uiHelper.onActivityResult(requestCode, resultCode, data, new FacebookDialog.Callback() {
            @Override
            public void onError(FacebookDialog.PendingCall pendingCall, Exception error, Bundle data) {
                Log.e("Activity", String.format("Error: %s", error.toString()));
            }

            @Override
            public void onComplete(FacebookDialog.PendingCall pendingCall, Bundle data) {
                Log.i("Activity", "Success!");
            }
        });

onError 或 onComplete 未调用,我不知道用户是否取消了请求或发送了请求。然而,onActivityResult 被调用。

之前在我的Fragment中我已经注册了一个UiLifeCycleHelper

uiHelper = new UiLifecycleHelper(getActivity(), null);
uiHelper.onCreate(savedInstanceState);

有人在 Android 上使用 Messenger 对话框完成此任务吗?或者这是另一个 Facebook 错误?

更新

向 Facebook 报告此问题后,我得到了与下面 atablash 相同的答案。但是,除非用户已经对您的应用程序进行了身份验证(已登录),否则您在使用 Messenger 对话框时将无法获得完成手势。在我的应用程序中,用户不会这样做,因为 Messenger 对话框不需要这样做。因此,基本上,如果您想使用 Messenger 对话框并获得回调,您必须首先强制用户滞后。

最佳答案

呈现对话框时需要调用uiHelper.trackPendingDialogCall(dialog.present())

看这里: https://developers.facebook.com/docs/android/share/ (使用共享对话框共享链接,步骤 2)

关于android - Facebook Messenger 对话框回调不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24180496/

相关文章:

c# - ASP.NET Core Web API Facebook JWT 身份验证

android - LocationServices.SettingsApi 使用 RESULT_CANCELED 调用 onActivityResult?

android - IllegalStateException 如果尝试从 onActivityResult 显示对话框

Android:使用应用内更新时不会调用 Fragment onActivityResult()

android - 设置为自动模式时如何获取上一屏幕亮度值?

java - 如何将 libsvm 模型加载到 Android 中

python - 从哪里开始解析 JSON?

android - 与元素类型 "android:name"关联的属性 "null"的值不得包含 '<' 字符

android - 即使在获取位置后,GPS 也一直在工作

javascript - 获取应用程序访问 token 的 Facebook 图形 API 调用返回 "unknown error"