Android Facebook 邀请仅显示在“应用邀请”部分

Posted

技术标签:

【中文标题】Android Facebook 邀请仅显示在“应用邀请”部分【英文标题】:Android Facebook invite only shown in "App Invites" section 【发布时间】:2017-03-21 14:33:09 【问题描述】:

我在我的应用中实现了 Facebook 应用邀请功能。在我的应用程序中发送和接收工作正常,但是在他的 android 应用程序上收到邀请的 Facebook 用户既没有收到推送通知,也没有收到指定 here 的一般通知。它仅显示在 App Invites 部分。 有谁知道我该怎么做才能显示 Facebook 通知?

Facebook SDK 4.20

邀请发送

private void initFbInvite(final CallbackManager callbackManager, final View inviteButton)
    Map<AppLinksManager.QueriesKeys, String> queries = new HashMap<>();
    queries.put(AppLinksManager.QueriesKeys.SENDER, UserManager.getInstance().getUser().getId());
    final Uri appLink = AppLinksManager.generateAppLink(AppLinksManager.Endpoint.FB_INVITE, queries);

    StorageReference previewImageUrlRef = mController.getStorageReference().child("applink-images/fb-invite.png");
    previewImageUrlRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() 
        @Override
        public void onSuccess(Uri uri) 

            final AppInviteContent inviteContent = new AppInviteContent.Builder()
                    .setApplinkUrl(appLink.toString())
                    .setPreviewImageUrl(uri.toString())
                    .build();

            final AppInviteDialog appInviteDialog = new AppInviteDialog(ExploreFragment.this);
            appInviteDialog.registerCallback(callbackManager, new FacebookCallback<AppInviteDialog.Result>() 
                @Override
                public void onSuccess(AppInviteDialog.Result result) 
                    Log.d(TAG, "FB invitation send successfully");
                

                @Override
                public void onCancel() 
                    Log.e(TAG, "FB invitation cancelled");
                

                @Override
                public void onError(FacebookException error) 
                    Log.e(TAG, "FB invitation error");
                
            );

            inviteButton.setOnClickListener(new View.OnClickListener() 
                @Override
                public void onClick(View v) 
                    appInviteDialog.show(inviteContent);
                
            );
        
    );

用于此 AppInviteContent 的自定义应用链接网址

https://stellarscepter.com/clecs/fb-invite?sender=PsF6qaJPLKVnOjxr2Ufzs5cSVTZ2

应用链接元数据的index.html(存储在服务器上的clecs/fb-invite文件夹中)

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <!-- Facebook App Link meta -->
    <meta property="al:android:url" content="clecs://fb-invite" />
    <meta property="al:android:app_name" content="Clecs" />
    <meta property="al:android:package" content="com.stellarscepter.clecs" />
    <meta property="al:android:class" content="com.stellarscepter.clecs.activity.LoginActivity" />
    <meta property="al:web:should_fallback" content="false" />

    <title>Stellarscepter</title>
  </head>
  <body>
  </body>
</html>

编辑 1:

我尝试了测试和真正的 Facebook 用户,他们已经收到了邀请,但没有收到任何邀请。我还尝试了通过 Facebook 进行了授权和未授权的用户。在每种组合中都没有显示 Facebook 通知。

【问题讨论】:

“如果此人已经安装了应用程序或已经收到了邀请,他们将不会收到任何进一步的通知” - 您是否验证过这些都不是这里的情况? 是的。抱歉,我忘了指定它:我尝试了测试和真正的 Facebook 用户,他们已经收到了邀请,但没有收到任何邀请。我还尝试了通过 Facebook 进行了授权和未授权的用户。在每种组合中均未显示 Facebook 通知。 【参考方案1】:

发现这是一个 Facebook SDK 错误报告 here。

【讨论】:

以上是关于Android Facebook 邀请仅显示在“应用邀请”部分的主要内容,如果未能解决你的问题,请参考以下文章

仅使用 Facebook 令牌在 iOS 上发送 Firebase 邀请登录 Firebase 身份验证

应用程序邀请 facebook |没有在 iOS 上收到通知,但在 android 中收到了邀请,但邀请列在 facebook -> 应用程序 -> 应用程序邀请中

Facebook 分享对话框始终仅在 Android 上显示验证码

Unity Facebook 接受来自 URL 的邀请?

在 android 上使用新的 API 2.0 管理 facebook 邀请

Android 实时应用 - 带有 Facebook 广告的 Google Admob 中介仅显示测试广告