シンプルな Facebookを使用しています。残念ながら、SimpleFacebook で招待状を送信できないため、AppInviteDialogを使用して友達を招待しています。
public void openDialogInvite(final Activity activity) {
String AppURl = "my FB url..."; //Generated from //fb developers
String previewImageUrl = "urlImage...";
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");
System.out.println("test onSuccess");
}
@Override
public void onCancel() {
System.out.println("test on cancel");
}
@Override
public void onError(FacebookException e) {
Log.d("Invitation", "Error Occured");
System.out.println("test Error"+e.getMessage());
}
});
appInviteDialog.show(content);
}
}
ダイアログを開くと、Facebook の招待画面が表示されます。
しかし、ダイアログのコールバックで応答がありません。
次のコードでは、appLink が常に null であるため、問題は自分の AppLink にあると思いました。
SimpleFacebook.initialize(this);
Uri targetUrl = AppLinks.getTargetUrlFromInboundIntent(ProfileActivity.this, getIntent());
if (targetUrl != null) {
Log.i("Activity", "App Link Target URL: " + targetUrl.toString());
} else {
AppLinkData.fetchDeferredAppLinkData(
this,
new AppLinkData.CompletionHandler() {
@Override
public void onDeferredAppLinkDataFetched(AppLinkData appLinkData) {
//process applink data
Log.i("Activity", "App Link Target URL: " + appLinkData);
}
});
}
AppLink は常に null だったので、「App Links Hosting API のクイック スタート」を使用して、appLink を手動で作成し、ダイアログで送信しました。
コールバック応答で何も得られないのはなぜですか? と Facebook ユーザーは私の招待状を受け取りませんか?