Android Facebook邀请您无法正常工作
问题描述:
我正在使用简单的Facebook。 不幸的是我不能发送邀请与SimpleFacebook所以我使用AppInviteDialog邀请朋友。Android Facebook邀请您无法正常工作
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);
}
}
The invite progress bar look like everything is ok
但,我得到在该对话框的回调没有任何反应。
我认为这个问题是我的应用链接,因为如下因素代码,应用链路始终为空:
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);
}
});
}
应用链接总是空的,所以我用“快速入门的应用链接托管API”,并创建了手动appLink,我发送它在对话框中。
为什么我在回调响应中没有得到任何东西? Facebook用户没有收到我的邀请?
答
我有同样的问题。大约两周前,当我在开发分支中测试它时,它曾经为我工作。现在,在上周部署它之后,受邀用户始终将appLinkData设置为null。
我做了一些进一步的修改,但即使当我现在签出曾经工作的修订版时,appLinkData也是空的。
对不起,这是一个答案,而不是评论,但我没有足够的声誉呢。
答
你打电话给CallbackManager.onActivityResult()
吗?
为了执行已注册的FacebookCallback
情况下,添加到您的活动或片段:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
sCallbackManager.onActivityResult(requestCode, resultCode, data);
}