为什么目标朋友没有收到我的Facebook AppInviteDialog请求?

时间:2015-04-22 12:08:34

标签: android facebook facebook-graph-api

简而言之:一切似乎都在客户端工作,但没有收到Facebook目标朋友。

以下是代码和屏幕截图的详细步骤:

AppInviteContent content = new AppInviteConent.Builder()
    .setApplinkUrl("App link url created via the Facebook AppLink creator tool")
    .setPreviewImageUrl("http://www.redacted.com/previewImage.png")
    .build();

appInviteDialog.show(this, content);

这样会显示一个对话框,其中包含预览应用程序安装的链接,以及在顶部输入消息的选项:

screenshot

然后我点击下一步,选择一个或多个朋友,然后点击右上方的发送按钮:

screenshot

结果是看似成功的发送:

screenshot

我还附加了一个回调,以确保它实际上是一个成功的发送:

appInviteDialog.registerCallback(facebookCallbackManager, new FacebookCallback<AppInviteDialog.Result>() {
    @Override
    public void onSuccess(AppInviteDialog.Result result) {
    Log.d(TAG,"onSuccess result = "+ result.getData().toString()); 
    }

    @Override
    public void onCancel() {}

    @Override
    public void onError(FacebookException e) {
        Log.d(TAG,"onError message = "+ e.getMessage());
    }
});

这打印出&#34; onSuccess结果= Bundle [{didComplete = 1}]&#34;

预期结果:朋友收到通知。 实际结果:朋友什么都没得到。

可能有用的更多信息:

  • App仅适用于Android。
  • 任何平台都没有收到包含Facebook安卓应用程序的通知。
  • 已通过在Facebook安卓应用中点击它确认了应用链接网址。 (它会创建一个链接到Google Play商店的弹出窗口)
  • 已启用单点登录并且用户已登录,但根据Facebook上的AppInviteDialog文档,不需要登录。
  • 尝试使用尚未授权应用的目标用户,以及已安装该应用的用户。结果相同。
  • 我使用的Facebook SDK版本是4.0.0

令人沮丧的是因为一切似乎都没问题,而且(我知道)没有办法调试这个问题。

我希望有人可以帮助我或指出我正确的方向。

谢谢!

1 个答案:

答案 0 :(得分:16)

好的,事实证明一切都运转良好。我的错误在于假设没有安装应用程序,并且未授权应用程序应生成推送通知。

创建新测试用户后,使用当前未安装该应用的设备,并且该应用从未获得该用户的授权。

因此,关键是如果目标设备上安装了应用,则不会生成推送通知,即使用户之前未授权该应用也是如此。此外,似乎如果用户之前已经授权该应用,即使它在某个时候被删除了,它也不会生成通知。

因此,如果您想对此进行测试,请创建一个全新的测试用户并登录您正在测试的平台上的Facebook应用程序,并确保该设备上未安装该应用程序。

我认为尽管安装了应用程序,它仍应生成通知,因为多个用户可能正在使用相同的设备,但这就是现在的情况。

我将此留在这里以防将来有人遇到类似的问题。

活得长久而繁荣!