这些是具有代码和截图的详细步骤:
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);
这将导致显示一个对话框,其中预览了安装应用程序的链接,以及在顶部输入消息的选项:
然后点击下一步,选择一个或多个朋友,然后点击右上角发送按钮:
结果是一个看似成功的发送:
我附上一个回调,以确保它实际上是一个成功的发送:
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应用程序.
>应用程序链接网址已被确认工作通过点击它在Facebook的Android应用程序. (它创建一个链接到Google Play商店的弹出式窗口)
>单点登录已启用,用户已登录,但根据Facebook上的AppInviteDialog文档不需要.
>试图与目标用户尚未授权的应用程序,以及已安装该应用程序的用户.相同的结果.
>我使用的Facebook SDK版本是4.0.0
这是令人沮丧的,因为一切似乎都OK,没有办法(我知道)来调试这个问题.
我希望有人可以帮助我,也可以指向正确的方向.
谢谢!
解决方法
创建新的测试用户后,使用当前未安装应用程序的设备,并且该应用程序不得已被用户授权.
所以这里的关键是,如果应用程序安装在目标设备上,即使用户以前没有授权应用程序,也不会生成推送通知.此外,似乎如果用户以前已经授权了应用程序,即使在某些时候它被删除,它也不会生成通知.
所以如果你想测试这个,创建一个全新的测试用户,并登录到您正在测试的平台上的Facebook应用程序,并确保该应用程序未安装在设备上.
我认为,尽管安装了应用程序,它仍然会生成通知,因为多个用户可能正在使用相同的设备,但这似乎是现在.
我会在这里离开这里,以防将来有人遇到类似的问题.
健康长寿·繁荣昌盛!