Android Facebook SDK 4.0.1 中应用请求对话框的新实现是什么
What is the new implementation of app requests dialog in Android Facebook SDK 4.0.1
我在我的项目中使用 Facebook apprequests 对话框的旧实现,例如:
Bundle parameters = new Bundle();
parameters.putString("message","invite friends message...");
parameters.putString("data","invite friends data...");
parameters.putString("title","invite friends dialog title...");
if (facebook != null){
facebook.dialog(getActivity(), "apprequests", parameters,
new Facebook.DialogListener() {
@Override
public void onComplete(Bundle values) {
// todo:
}
});
}
我在 facebook 文档中找到了新的实现。 App Invites
appLinkUrl = "my app link...";
previewImageUrl = "my image url...";
if (AppInviteDialog.canShow()) {
AppInviteContent content = new AppInviteContent.Builder()
.setApplinkUrl(appLinkUrl)
.setPreviewImageUrl(previewImageUrl)
.build();
AppInviteDialog.show(activity, content);
}
这种邀请应用程序给朋友或任何其他方式的实施方式是否正确?如果是,那么我的消息和数据内容将放在哪里。
或者如果我正在使用图 api 请求,例如:
String graphPath="/me/apprequests/";
GraphRequest request = GraphRequest.newGraphPathRequest(
accessToken, graphPath, graphCallback);
Bundle parameters = new Bundle();
parameters.putString("message","invite friends message...");
parameters.putString("data","invite friends data...");
parameters.putString("title","invite friends dialog title...");
request.setParameters(parameters);
request.executeAsync();
然后得到 {"data":[]}
响应,但没有出现对话框。对此的正确实施是什么?
旧应用请求已重命名Game Requests并且仅限于游戏。
App Invites 对话框最近刚刚启动,适用于所有移动应用程序(iOS 或 Android 本机应用程序)。通过应用邀请对话框,您可以设置 URL(即启用应用链接),您还可以在邀请中添加图片。但是,您不能预填消息,用户必须输入。
我得到了解决方案,在下面找到,这是facebook sdk4中应用请求对话框的新实现。
String appLinkUrl = "https://fb.me/...";
String previewImageUrl = ...;
final String TAG = "fbv4";
if (AccessToken.getCurrentAccessToken() == null) {
// start login...
} else {
FacebookSdk.sdkInitialize(activity.getApplicationContext());
CallbackManager callbackManager = CallbackManager.Factory.create();
FacebookCallback<AppInviteDialog.Result> facebookCallback= new FacebookCallback<AppInviteDialog.Result>() {
@Override
public void onSuccess(AppInviteDialog.Result result) {
Log.i(TAG, "MainACtivity, InviteCallback - SUCCESS!" + result.getData());
}
@Override
public void onCancel() {
Log.i(TAG, "MainACtivity, InviteCallback - CANCEL!");
}
@Override
public void onError(FacebookException e) {
Log.e(TAG, "MainACtivity, InviteCallback - ERROR! " + e.getMessage());
}
};
AppInviteDialog appInviteDialog = new AppInviteDialog(activity);
if (appInviteDialog.canShow()) {
AppInviteContent.Builder content = new AppInviteContent.Builder();
content.setApplinkUrl(appLinkUrl);
content.setPreviewImageUrl(previewImageUrl);
AppInviteContent appInviteContent = content.build();
appInviteDialog.registerCallback(callbackManager, facebookCallback);
appInviteDialog.show(activity, appInviteContent);
}
}
}
我在我的项目中使用 Facebook apprequests 对话框的旧实现,例如:
Bundle parameters = new Bundle();
parameters.putString("message","invite friends message...");
parameters.putString("data","invite friends data...");
parameters.putString("title","invite friends dialog title...");
if (facebook != null){
facebook.dialog(getActivity(), "apprequests", parameters,
new Facebook.DialogListener() {
@Override
public void onComplete(Bundle values) {
// todo:
}
});
}
我在 facebook 文档中找到了新的实现。 App Invites
appLinkUrl = "my app link...";
previewImageUrl = "my image url...";
if (AppInviteDialog.canShow()) {
AppInviteContent content = new AppInviteContent.Builder()
.setApplinkUrl(appLinkUrl)
.setPreviewImageUrl(previewImageUrl)
.build();
AppInviteDialog.show(activity, content);
}
这种邀请应用程序给朋友或任何其他方式的实施方式是否正确?如果是,那么我的消息和数据内容将放在哪里。
或者如果我正在使用图 api 请求,例如:
String graphPath="/me/apprequests/";
GraphRequest request = GraphRequest.newGraphPathRequest(
accessToken, graphPath, graphCallback);
Bundle parameters = new Bundle();
parameters.putString("message","invite friends message...");
parameters.putString("data","invite friends data...");
parameters.putString("title","invite friends dialog title...");
request.setParameters(parameters);
request.executeAsync();
然后得到 {"data":[]}
响应,但没有出现对话框。对此的正确实施是什么?
旧应用请求已重命名Game Requests并且仅限于游戏。
App Invites 对话框最近刚刚启动,适用于所有移动应用程序(iOS 或 Android 本机应用程序)。通过应用邀请对话框,您可以设置 URL(即启用应用链接),您还可以在邀请中添加图片。但是,您不能预填消息,用户必须输入。
我得到了解决方案,在下面找到,这是facebook sdk4中应用请求对话框的新实现。
String appLinkUrl = "https://fb.me/...";
String previewImageUrl = ...;
final String TAG = "fbv4";
if (AccessToken.getCurrentAccessToken() == null) {
// start login...
} else {
FacebookSdk.sdkInitialize(activity.getApplicationContext());
CallbackManager callbackManager = CallbackManager.Factory.create();
FacebookCallback<AppInviteDialog.Result> facebookCallback= new FacebookCallback<AppInviteDialog.Result>() {
@Override
public void onSuccess(AppInviteDialog.Result result) {
Log.i(TAG, "MainACtivity, InviteCallback - SUCCESS!" + result.getData());
}
@Override
public void onCancel() {
Log.i(TAG, "MainACtivity, InviteCallback - CANCEL!");
}
@Override
public void onError(FacebookException e) {
Log.e(TAG, "MainACtivity, InviteCallback - ERROR! " + e.getMessage());
}
};
AppInviteDialog appInviteDialog = new AppInviteDialog(activity);
if (appInviteDialog.canShow()) {
AppInviteContent.Builder content = new AppInviteContent.Builder();
content.setApplinkUrl(appLinkUrl);
content.setPreviewImageUrl(previewImageUrl);
AppInviteContent appInviteContent = content.build();
appInviteDialog.registerCallback(callbackManager, facebookCallback);
appInviteDialog.show(activity, appInviteContent);
}
}
}