我正在使用简单的 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);
}
}
但是,我在对话框回调中没有得到任何响应。
我认为问题出在我的 AppLink 上,因为在以下代码中,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 始终为空,因此我使用了“应用程序链接托管 API 的快速入门”,并手动创建了 appLink 并将其发送到对话框中。
为什么我在回调响应中一无所获?Facebook 用户没有收到我的邀请?