[英]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.