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

简而言之:一切似乎都在客户端工作,但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);

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

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

结果是一个看似成功的发送:

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

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应用程序,并确保该应用程序未安装在设备上.

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

我会在这里离开这里,以防将来有人遇到类似的问题.

健康长寿·繁荣昌盛!

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...