Facebook App Invite,邀请朋友

时间:2015-05-20 09:24:13

标签: android facebook facebook-app-requests facebook-invite facebook-invite-friends

我切换到Facebook 4.0以实现Android的AppInviteDialog。我跟着this reference

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

我使用了以下applink网址:https://fb.me/****412097*****

虽然我在对话框中看到了应用程序的图像,但没有预览图像。

代码:

//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)

Code for fb invitation not working

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

Facebook App Invite not received

5 个答案:

答案 0 :(得分:17)

好的,事实证明一切都运转良好。我的错误在于假设没有安装应用程序,并且未授权应用程序应生成推送通知。

创建新的测试用户后,使用当前未安装该应用的设备,且该应用从未获得该用户的授权。

因此,关键是如果应用程序安装在目标设备上,则不会生成推送通知,即使用户之前未授权该应用程序也是如此。此外,看起来,如果用户之前已经授权该应用,即使它在某个时候被删除了,它也不会生成通知。

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

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

如果以后有人遇到类似的问题我会留在这里。

活得长久而繁荣!

Source

它确实对我有用,但是我不太确定它是否涵盖所有场景并且是完美的解决方案。在此处发布其他用户和建议(如果有)。

答案 1 :(得分: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);
        }

    }

答案 2 :(得分: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);
    }
}

请注意。 您只能在设备中查看邀请

答案 3 :(得分:1)

  1. 我还在我的iOS应用程序中集成了app invite api。在更改应用程序设置后,我也面临同样的问题。我收到了所有方面的通知。
  2. 正如阿萨德先生在答案中所说,他不会在浏览器上表明他说错了。实际上为了获得邀请,我们必须以下列方式为所有方面设置申请。 从开发人员帐户中选择您的应用程序并提供所有平台的信息,以便在所有站点ios,Android,Facebook和Web上获取邀请。如果我们只为一个平台添加设置,例如提供只有android通知的信息将在Android设备上显示而不是在其他平台上。

答案 4 :(得分:0)

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

enter image description here