简而言之:客户端似乎一切正常,但 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);
这会导致显示一个对话框,其中包含应用程序安装链接的预览,以及在顶部输入消息的选项:
然后我点击下一步,选择一个或多个 friend 并点击右上角的发送按钮:
结果是看似成功的发送:
我还附加了一个回调以确保它实际上是一个成功的发送:
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());
}
});
这会打印出“onSuccess result = Bundle[{didComplete=1}]”
预期结果:好友收到通知。 实际结果: friend 什么也没收到。
一些可能有用的信息:
- 应用程序仅适用于安卓系统。
- 在包括 Facebook android 应用程序在内的任何平台上都不会收到通知。
- 已通过在 Facebook android 应用程序中单击该应用程序链接 url 来确认它可以正常工作。 (它会创建一个链接到 Google Play 商店的弹出窗口)
- 单点登录已启用且用户已登录,但根据 Facebook 上的 AppInviteDialog 文档,这不是必需的。
- 针对尚未授权该应用的目标用户以及已安装该应用的用户进行了尝试。相同的结果。
- 我使用的 Facebook SDK 版本是 4.0.0
这令人沮丧,因为一切似乎都正常,而且(据我所知)没有办法调试这个问题。
我希望有人能帮助我或指出正确的方向。
谢谢!
最佳答案
好的,事实证明一切正常。我的错误是假设没有安装应用程序,并且没有授权应用程序应该生成推送通知。
创建新的测试用户后,使用当前未安装该应用程序且该应用程序从未获得用户授权的设备。
所以这里的关键是如果应用安装在目标设备上,则不会生成推送通知,即使用户之前没有授权该应用。此外,似乎如果用户之前已授权该应用,即使它在某个时候被删除,它也不会生成通知。
因此,如果您想对此进行测试,请创建一个全新的测试用户并在您正在测试的平台上登录 Facebook 应用程序,并确保该应用程序未安装在设备上。
我认为尽管安装了应用程序,它仍应生成通知,因为多个用户可能正在使用同一台设备,但这就是现在的情况。
我会把它留在这里,以防将来有人遇到类似的问题。
长寿,繁荣昌盛!
关于android - 为什么目标 friend 没有收到我的 Facebook AppInviteDialog 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29797111/