为什么目标朋友没有收到我的 Facebook AppInviteDialog 请求?
Why is my Facebook AppInviteDialog request not being received by target friend?
简而言之:客户端似乎一切正常,但 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);
这会导致显示一个对话框,其中包含应用安装 link 的预览,以及在顶部输入消息的选项:
然后我点击下一步,select一个或多个朋友点击右上角的发送按钮:
结果看似成功发送:
我还附上了回调以确保发送成功:
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}]"
预期结果:好友收到通知。
实际结果:朋友什么也没收到。
更多可能有用的信息:
- 应用仅在 android 上可用。
- 在包括 Facebook android 应用程序在内的任何平台上均未收到通知。
- 应用程序 link url 已通过在 Facebook android 应用程序中单击它来确认工作。 (它创建一个 link 到 Google Play 商店的弹出窗口)
- 已启用单点登录且用户已登录,但根据 Facebook 上的 AppInviteDialog 文档,应该不是必需的。
- 针对尚未授权该应用程序的目标用户以及已安装该应用程序的用户进行了尝试。相同的结果。
- 我使用的Facebook SDK版本是4.0.0
这很令人沮丧,因为一切似乎都正常,而且没有办法(据我所知)调试这个问题。
我希望有人能帮助我或指出正确的方向。
谢谢!
好的,事实证明一切正常。我的错误是假设没有安装应用程序,并且没有授权应用程序应该生成推送通知。
创建新的测试用户后,使用当前未安装该应用程序且该应用程序从未获得用户授权的设备。
所以这里的关键是如果目标设备上安装了应用程序,则不会生成推送通知,即使用户没有授权以前的应用。另外,貌似,如果用户之前授权过该应用程序,即使它在某个时候被删除,它也不会生成通知。
因此,如果您想对此进行测试,请创建一个全新的测试用户并在您正在测试的平台上登录 Facebook 应用程序,并确保该应用程序未安装在设备上.
我认为尽管安装了应用程序,它仍应生成通知,因为多个用户可能正在使用同一台设备,但这就是现在的情况。
我会把它留在这里,以防将来有人遇到类似的问题。
长命百岁!
简而言之:客户端似乎一切正常,但 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);
这会导致显示一个对话框,其中包含应用安装 link 的预览,以及在顶部输入消息的选项:
然后我点击下一步,select一个或多个朋友点击右上角的发送按钮:
结果看似成功发送:
我还附上了回调以确保发送成功:
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}]"
预期结果:好友收到通知。 实际结果:朋友什么也没收到。
更多可能有用的信息:
- 应用仅在 android 上可用。
- 在包括 Facebook android 应用程序在内的任何平台上均未收到通知。
- 应用程序 link url 已通过在 Facebook android 应用程序中单击它来确认工作。 (它创建一个 link 到 Google Play 商店的弹出窗口)
- 已启用单点登录且用户已登录,但根据 Facebook 上的 AppInviteDialog 文档,应该不是必需的。
- 针对尚未授权该应用程序的目标用户以及已安装该应用程序的用户进行了尝试。相同的结果。
- 我使用的Facebook SDK版本是4.0.0
这很令人沮丧,因为一切似乎都正常,而且没有办法(据我所知)调试这个问题。
我希望有人能帮助我或指出正确的方向。
谢谢!
好的,事实证明一切正常。我的错误是假设没有安装应用程序,并且没有授权应用程序应该生成推送通知。
创建新的测试用户后,使用当前未安装该应用程序且该应用程序从未获得用户授权的设备。
所以这里的关键是如果目标设备上安装了应用程序,则不会生成推送通知,即使用户没有授权以前的应用。另外,貌似,如果用户之前授权过该应用程序,即使它在某个时候被删除,它也不会生成通知。
因此,如果您想对此进行测试,请创建一个全新的测试用户并在您正在测试的平台上登录 Facebook 应用程序,并确保该应用程序未安装在设备上.
我认为尽管安装了应用程序,它仍应生成通知,因为多个用户可能正在使用同一台设备,但这就是现在的情况。
我会把它留在这里,以防将来有人遇到类似的问题。
长命百岁!