0

我正在使用简单的 Facebook。不幸的是,我无法使用 SimpleFacebook 发送邀请,所以我使用AppInviteDialog来邀请朋友。

 public void openDialogInvite(final Activity activity) {
    String AppURl = "my FB url...";  //Generated from //fb developers

    String previewImageUrl = "urlImage...";

    sCallbackManager = CallbackManager.Factory.create();

    if (AppInviteDialog.canShow()) {
        AppInviteContent content = new AppInviteContent.Builder()
                .setApplinkUrl(AppURl).setPreviewImageUrl(previewImageUrl)
                .build();

        AppInviteDialog appInviteDialog = new AppInviteDialog(activity);
        appInviteDialog.registerCallback(sCallbackManager,
                new FacebookCallback<AppInviteDialog.Result>() {

                    @Override
                    public void onSuccess(AppInviteDialog.Result result) {
                        Log.d("Invitation", "Invitation Sent Successfully");
                        System.out.println("test onSuccess");
                    }

                    @Override
                    public void onCancel() {
                        System.out.println("test  on cancel");

                    }

                    @Override
                    public void onError(FacebookException e) {
                        Log.d("Invitation", "Error Occured");
                        System.out.println("test Error"+e.getMessage());

                    }
                });

        appInviteDialog.show(content);
    }

}

对话框打开 Facebook 邀请屏幕:

邀请进度条看起来一切正常

但是,我在对话框回调中没有得到任何响应。

我认为问题出在我的 AppLink 上,因为在以下代码中,appLink 始终为空:

 SimpleFacebook.initialize(this);


    Uri targetUrl = AppLinks.getTargetUrlFromInboundIntent(ProfileActivity.this, getIntent());
    if (targetUrl != null) {
        Log.i("Activity", "App Link Target URL: " + targetUrl.toString());
    } else {


        AppLinkData.fetchDeferredAppLinkData(
                this,
                new AppLinkData.CompletionHandler() {
                    @Override
                    public void onDeferredAppLinkDataFetched(AppLinkData appLinkData) {
                        //process applink data
                        Log.i("Activity", "App Link Target URL: " + appLinkData);

                    }
                });
    }

AppLink 始终为空,因此我使用了“应用程序链接托管 API 的快速入门”,并手动创建了 appLink 并将其发送到对话框中。

为什么我在回调响应中一无所获?Facebook 用户没有收到我的邀请?

4

2 回答 2

0

我也有同样的问题。大约两周前,当我在开发分支中对其进行测试时,它曾经对我有用。现在在上周部署后,受邀用户的 appLinkData 始终为空。

我做了一些进一步的更改,但即使我现在签出曾经工作的修订版,appLinkData 也是空的。

很抱歉将其写为答案而不是评论,但我还没有足够的声誉。

于 2016-05-18T07:11:49.040 回答
0

你打电话CallbackManager.onActivityResult()吗?

为了执行FacebookCallback您已注册的实例,请将其添加到您的 Activity 或 Fragment:

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      sCallbackManager.onActivityResult(requestCode, resultCode, data);
    }
于 2017-03-23T14:48:11.400 回答