web-dev-qa-db-ja.com

Facebookアプリの招待、友達の招待

Android用のAppInviteDialogを実装するために、Facebook 4.0に切り替えました。 このリファレンス に従いました。

ダイアログが表示され、友達を選択して招待することができます。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アプリの招待は受信されません

21
Atul O Holic

結局のところ、すべてが正常に機能していたことがわかりました。私の間違いは、アプリがインストールされておらず、アプリが承認されていないとプッシュ通知が生成されると想定していたことです。

新しいテストユーザーを作成した後、アプリが現在インストールされていないデバイスを使用し、アプリがユーザーに承認されたことがない。

そのため、ここで重要なことは、ユーザーがアプリを以前に承認していない場合でも、アプリがターゲットデバイスにインストールされている場合、プッシュ通知が生成されないことです。また、ユーザーがアプリを以前に承認している場合、ある時点でアプリが削除されたとしても、通知も​​生成されないようです。

これをテストする場合は、まったく新しいテストユーザーを作成し、テスト対象のプラットフォームでFacebookアプリにログインして、アプリがデバイスにインストールされていないことを確認します。

複数のユーザーが同じデバイスを使用している可能性があるため、アプリがインストールされていても通知を生成する必要があると思いますが、それは今のようです。

将来同様の問題が発生する場合に備えて、ここに残しておきます。

長く生きると繁栄!

ソース

それは実際に私にとってはうまくいきましたが、それがすべてのシナリオをカバーし、完璧なソリューションであるかどうかはよくわかりません。他のユーザーのためのここへの投稿と、もしあれば提案。

17
Atul O Holic

私は次のコードを使用していますが、うまく機能しています...しかし、友人を招待した後(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);
        }

    }
6
asad.qazi

これは同じ問題のある人を助けるかもしれませんこのコードを使用してください

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
CLIFFORD P Y
  1. また、iOSアプリにアプリ招待APIを統合します。アプリケーション設定を変更した後も、同じ問題に直面しています。私はすべての面で通知を受け取りました。
  2. アサド氏が答えで言ったように、間違っていると言っているブラウザには表示されません。実際、すべての側で招待を受けるには、次の方法ですべての側のアプリケーションの設定を行う必要があります。開発者アカウントからアプリを選択し、すべてのプラットフォームの情報を提供して、すべてのサイトのiOS、Android、Facebook、およびWebで招待状を取得します。 1つのプラットフォームのみに設定を追加する場合、たとえばAndroid通知はAndroid他のプレートフォームにないデバイスに表示されます。
1
abrar ul haq

私の場合、FBアプリは開発モード(ライブではない)であったため、FBアプリで招待状を受け取って見ることができませんでした。

enter image description here

0
Vasily Kabunov