Facebook应用程序邀请,邀请朋友

21

我升级到 Facebook 4.0 版本,以便在 Android 上实现 AppInviteDialog。我遵循了这个参考文献

对话框出现了,我可以选择朋友、邀请他们,我收到了 onSuccess() 的调用,但我的朋友没有收到邀请。

我使用了以下的 applink URL:https://fb.me/****412097*****

虽然我在对话框上看到了我的应用图像,但没有 previewImageURL。

代码:

//Inside onCreate -

        callbackManager = CallbackManager.Factory.create();

        mInvititeDialog = new AppInviteDialog(this);
        mInvititeDialog.registerCallback(callbackManager,
                new FacebookCallback<AppInviteDialog.Result>() {

                    @Override
                    public void onSuccess(Result result) {
                        NetworkController.showCustomToast(
                                InviteFriendsActivity.this,
                                "Invitation Sent Successfully!");
                        finish();
                    }

                    @Override
                    public void onCancel() {
                        Log.d("Result", "Cancelled");
                        NetworkController.showCustomToast(
                                InviteFriendsActivity.this, "Cancelled");
                        finish();
                    }

                    @Override
                    public void onError(FacebookException exception) {
                        Log.d("Result", "Error " + exception.getMessage());
                        NetworkController.showCustomToast(
                                InviteFriendsActivity.this,
                                "Error while inviting friends");
                        finish();
                    }
                });


    if (AppInviteDialog.canShow()) {
            AppInviteContent content = new AppInviteContent.Builder()
                            .setApplinkUrl(appLinkUrl).build();

            AppInviteDialog.show(InviteFriendsActivity.this, content);

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);

    }

以下相似链接没有提供任何帮助(尽管它们来自ios)

fb邀请的代码不起作用

https://stackoverflow.com/questions/27547826/facebook-app-invites-issue

Facebook应用程序邀请未被接收


使用“应用邀请”功能是否必须具备Facebook应用程序? - activesince93
如何获取appLinkUrl?我无法获取它。 - Praneeth
5个回答

17

好的,事实证明一切都正常工作。我的错误在于假设没有安装应用程序和没有授权应用程序会生成推送通知。

创建一个新的测试用户,在当前未安装应用程序且应用程序从未得到该用户授权的设备上使用。

因此,关键在于如果应用程序安装在目标设备上,则不会生成推送通知,即使用户以前没有授权过该应用程序。另外,似乎,即使用户先前曾授权过该应用程序,即使曾经删除过该应用程序,也不会生成通知。

因此,如果您想要测试这个问题,请创建一个全新的测试用户,并在您正在测试的平台上在Facebook应用程序上登录,并确保该应用程序未安装在设备上。

我认为即使应用程序已经安装,它仍应该生成通知,因为可能有多个用户在使用同一设备,但目前似乎并非如此。

我将把这个留在这里,以防未来有人遇到类似的问题。

活得长久而繁荣昌盛!

来源

对我来说,它实际上起作用了,但我不太确定它是否涵盖了所有情况并且是完美的解决方案。为其他用户发布此内容,如果有建议,请提出。


从 Facebook 邀请朋友时出现问题。您能否回答这个问题:https://stackoverflow.com/questions/38677049/how-to-invite-friends-from-facebook-to-android-app-gives-error - Abhishek T.

6
我正在使用以下代码,它能很好地工作...但在邀请朋友后(如果您已经分享了Android应用程序,邀请人必须检查他/她的移动应用程序...),邀请在浏览器中不可见。
private CallbackManager sCallbackManager;

public void openDialogInvite(final Activity activity) {
            String AppURl = "https://fb.me/421570...5709";  //Generated from //fb developers

        String previewImageUrl = "http://someurl/13_dp.png";

        sCallbackManager = CallbackManager.Factory.create();

        if (AppInviteDialog.canShow()) {
            AppInviteContent content = new AppInviteContent.Builder()
                    .setApplinkUrl(AppURl).setPreviewImageUrl(previewImageUrl)
                    .build();

            AppInviteDialog appInviteDialog = new AppInviteDialog(activity);
            appInviteDialog.registerCallback(sCallbackManager,
                    new FacebookCallback<AppInviteDialog.Result>() {
                        @Override
                        public void onSuccess(AppInviteDialog.Result result) {
                            Log.d("Invitation", "Invitation Sent Successfully");
                            finish();
                        }

                        @Override
                        public void onCancel() {
                        }

                        @Override
                        public void onError(FacebookException e) {
                            Log.d("Invitation", "Error Occured");
                        }
                    });

            appInviteDialog.show(content);
        }

    }

if you've any problems ask me - asad.qazi
感谢 @asad.qazi +1。我还发现了一些边缘情况,它不能正常工作。已添加如下以供参考。 - Atul O Holic
通过为Web和FB Canvas以及iOS和Android设置应用程序设置,邀请可以在所有平台上获取FB帐户。 - abrar ul haq
邀请好友对话框出现了,但使用的是印地语。如何获取英语语言的数据? - AmeeJoshi
2
你好,我能够发送应用邀请,但是无论是在onSuccess还是onError中都没有得到任何响应。请帮忙! - Vivek Bhardwaj
显示剩余4条评论

3
这可能会帮助遇到同样问题的人们。请使用以下代码:
private void InviteFbFriends()
{
    String appLinkUrl, previewImageUrl;
    appLinkUrl = "app url(create it from facebook)"; //your applink url
    previewImageUrl = "image url";//your image url 
    if (AppInviteDialog.canShow()) {
        AppInviteContent content = new AppInviteContent.Builder()
                .setApplinkUrl(appLinkUrl)
                .setPreviewImageUrl(previewImageUrl)
                .build();
        AppInviteDialog.show(this, content);
    }
}

注意:你只能在设备上查看邀请。

1
你只能在设备上查看邀请。谢谢。 - hungtdo

1
  1. 我也在我的iOS应用程序中集成了应用邀请API。在更改应用程序设置后,我也遇到了同样的问题。我在所有方面都收到了通知。
  2. 正如Asad先生在他的答案中所说,它不会显示在浏览器上,他说错了。实际上,为了在所有平台上获得邀请,我们必须为应用程序进行设置,选择开发者帐户并提供所有平台的信息,如iOS、Android、Facebook和web。如果我们只为一个平台添加设置,例如仅为Android提供信息,则通知将仅显示在Android设备上,而不是其他平台。

0
在我的情况下,我无法收到邀请并在FB应用程序上看到它们,因为FB应用程序处于开发模式(非实时)下。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接