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 应用邀请

4

5 回答 5

17

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

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

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

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

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

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

健康长寿·繁荣昌盛!

资源

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

于 2015-05-21T12:49:38.897 回答
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);
        }

    }
于 2015-05-21T12:35:18.987 回答
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);
    }
}

笔记。您只能在设备中查看邀请

于 2016-06-18T07:57:13.093 回答
1
  1. 我还在我的 iOS 应用程序中集成了应用程序邀请 api。在更改应用程序设置后,我也面临同样的问题。我收到了四面八方的通知。
  2. 正如阿萨德先生在他的回答中所说,它不会在浏览器上显示他说错了。实际上,要获得各方的邀请,我们必须按照以下方式为各方进行申请设置。从开发人员帐户中选择您的应用并提供所有平台的信息,以便在所有站点 ios、Android、Facebook 和 Web 上获得邀请。如果我们只为一个平台添加设置,例如只为安卓设备提供信息,通知将显示在安卓设备上,而不是在其他平台上。
于 2015-05-22T11:54:21.267 回答
0

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

在此处输入图像描述

于 2017-10-05T16:35:14.830 回答