簡體   English   中英

AppInviteDialog無法在Android Facebook SDK 4.0中運行

[英]AppInviteDialog not working in Android Facebook SDK 4.0

經過長時間的研究,並試圖自己解決這個問題,我沒有找到任何可接受的工作結果。

按照此文檔,我正在嘗試邀請朋友加入我的應用。 所有元素(如共享按鈕)都正常工作。

唯一的問題是“邀請到應用程序”對話框。 選擇朋友后,對話框顯示紅色警報圖標,“發送”按鈕變為“重試”按鈕。

我試過在很多方面解決這個問題 - 在FB開發頁面中配置我的應用程序(比如更改應用程序類別:游戲,旅行.etc),添加新的共享權限(但我還沒有找到,需要邀請它),使用GamesRequests (但我的應用程序不是游戲,它是android + canvas應用程序)。 所以我又回到了AppInviteDialog。

此外,我試圖使用自己的實例,與偵聽器,而不是靜態類。

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());
    }
});

並調用它,就像在教程中一樣

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

但我得到的只是:

在此輸入圖像描述

編輯:

在使用AppLinks創建我的應用程序鏈接並在AppInviteDialog中使用它之后,現在一切正常。 這有點令人困惑,在文檔中沒有明確描述,需要使用什么樣的鏈接:“AppLinks鏈接”或只是“應用程序鏈接(鏈接到您的fb應用程序)”。

有錯誤信息嗎?

如果我不使用AppLink,我會得到這個。

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

我有同樣的問題,我的原因是沒有在facebook CallbackManager上調用onActivityResult 這就是我修復它的方法:

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

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

然后這是我遇到錯誤的地方:

@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);
}

添加onActivityResult后,我的回調被觸發了:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM