简体   繁体   中英

AppInviteDialog not working in Android Facebook SDK 4.0

After long research and trying to fix this on my own, I haven't found any acceptable working result.

Following this documentation I'm trying to invite friends to my app. All elements, such as share buttons are working properly.

The only problem are with "Invite to app" dialog. After selecting a friend, the dialog are showing red alert icon and "send" button is turns into "retry" button.

I have tried fix this in many ways - configure my app in FB dev page (like changing app category: game, travel .etc), adding new permission for sharing (but I haven't found, that inviting is required it), using GamesRequests (but my app isn't a game, it's android + canvas app). So I have returned again to AppInviteDialog.

Also, I have trying to use own instance of it, with listeners, instead of static class.

inviteDialog = new AppInviteDialog(this);
inviteDialog.registerCallback(callbackManager, new FacebookCallback<Result>() {
    @Override
    public void onSuccess(Result result) {
        Log.i(TAG, "MainACtivity, InviteCallback - SUCCESS!");
    }

    @Override
    public void onCancel() {
        Log.i(TAG, "MainACtivity, InviteCallback - CANCEL!");
    }

    @Override
    public void onError(FacebookException error) {
        Log.e(TAG, "MainACtivity, InviteCallback - ERROR! " + error.getMessage());
    }
});

And calling it, like in tutorial :

 if(AppInviteDialog.canShow()) {
        AppInviteContent content = new AppInviteContent.Builder()
            .setApplinkUrl(appUrl)
            .setPreviewImageUrl(imagePreviewUrl)
            .build();
            //AppInviteDialog.show(this, content); //static
        inviteDialog.show(content); //my instance
  }

But all what i get is:

在此输入图像描述

Edit:

After creating link to my app using AppLinks , and using it in the AppInviteDialog, now all works fine. It's a bit confusing, that in documentation not clearly described, what kind of link need to use: "AppLinks link" or just "app link (link to your fb app)".

Is there an error message?

I get this if I don't use an AppLink.

https://developers.facebook.com/quickstarts/1374389166202673/?platform=app-links-host

I was having the same issue and my cause was not calling onActivityResult on the facebook CallbackManager. This is how I fixed it:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    facebookCallbackManager = CallbackManager.Factory.create();
    // ...
}

Then here is where I was having the error:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    // This is the line I was lacking
    facebookCallbackManager.onActivityResult(requestCode, resultCode, data);
}

After onActivityResult was added, I am getting my callbacks fired:

AppInviteDialog appInviteDialog = new AppInviteDialog(activity);
FacebookCallback callback =  new FacebookCallback<AppInviteDialog.Result>() {
        @Override
        public void onSuccess(AppInviteDialog.Result result) {
        }

        @Override
        public void onCancel() {
        }

        @Override
        public void onError(FacebookException error) {
        }
    };
appInviteDialog.registerCallback(facebookCallbackManager, callback);
appInviteDialog.show(content);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM