Android:使用 SDK 4.0 在 Facebook 中分享 OpenGraph Stories
Android: OpenGraph Stories sharing in Facebook with SDK 4.0
我正在尝试实现在玩家解锁徽章时分享到 Facebook 的成就。在 facebook 开发人员控制台中使用对象浏览器制作了一个对象。我制作了动作类型和对象类型,并制作了一个自定义故事。现在我无法尝试将故事分享到 Facebook。 facebook 提供的文档不充分。连facebook给的示例代码都用v3.x
facebook给出的示例代码如下。找不到任何好的文档。
对象代码
Bundle params = new Bundle();
Request request = new Request(
Session.getActiveSession(),
"me/objects/enguru_app:badge",
params,
HttpMethod.POST
);
Response response = request.executeAndWait();
// handle the response
操作代码
Bundle params = new Bundle();
params.putString("badge", "http://samples.ogp.me/1114467558579559");
Request request = new Request(
Session.getActiveSession(),
"me/enguru_app:unlocked",
params,
HttpMethod.POST
);
Response response = request.executeAndWait();
// handle the response
查看此页面:https://developers.facebook.com/docs/sharing/android 特别是 ShareOpenGraphObject 和 ShareOpenGraphAction。
您也可以通过 Scrumptious 进行调试:https://github.com/facebook/facebook-android-sdk/blob/master/samples/Scrumptious/src/com/facebook/scrumptious/SelectionFragment.java#L365
终于解决了我自己的问题。
解决方法如下:
ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
.putString("og:type", "enguru_app:badge")
.putString("og:title", "Unlocked Newbie Badge")
.putString("og:url","xxxx")
.putString("og:image","xxx")
.putString("game:points", "10")
.putString("fb:app_id", "xxx")
.putString("og:description",
"We are rocking. Come and Play with us").build();
// Create an action
ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
.setActionType("enguru_app:unlocked")
.putObject("badge", object).build();
// Create the content
ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
.setPreviewPropertyName("badge").setAction(action)
.build();
ShareDialog.show(Profile.this, content);
我希望这对遇到同样问题的人有所帮助。
如果您正在寻找如何在不使用 ShareDialog
的情况下进行分享:
ShareApi shareApi = new ShareApi(content);
shareApi.share(new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
}
});
您可能还想查看 shareApi.canShare()
我正在尝试实现在玩家解锁徽章时分享到 Facebook 的成就。在 facebook 开发人员控制台中使用对象浏览器制作了一个对象。我制作了动作类型和对象类型,并制作了一个自定义故事。现在我无法尝试将故事分享到 Facebook。 facebook 提供的文档不充分。连facebook给的示例代码都用v3.x
facebook给出的示例代码如下。找不到任何好的文档。
对象代码
Bundle params = new Bundle();
Request request = new Request(
Session.getActiveSession(),
"me/objects/enguru_app:badge",
params,
HttpMethod.POST
);
Response response = request.executeAndWait();
// handle the response
操作代码
Bundle params = new Bundle();
params.putString("badge", "http://samples.ogp.me/1114467558579559");
Request request = new Request(
Session.getActiveSession(),
"me/enguru_app:unlocked",
params,
HttpMethod.POST
);
Response response = request.executeAndWait();
// handle the response
查看此页面:https://developers.facebook.com/docs/sharing/android 特别是 ShareOpenGraphObject 和 ShareOpenGraphAction。
您也可以通过 Scrumptious 进行调试:https://github.com/facebook/facebook-android-sdk/blob/master/samples/Scrumptious/src/com/facebook/scrumptious/SelectionFragment.java#L365
终于解决了我自己的问题。
解决方法如下:
ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
.putString("og:type", "enguru_app:badge")
.putString("og:title", "Unlocked Newbie Badge")
.putString("og:url","xxxx")
.putString("og:image","xxx")
.putString("game:points", "10")
.putString("fb:app_id", "xxx")
.putString("og:description",
"We are rocking. Come and Play with us").build();
// Create an action
ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
.setActionType("enguru_app:unlocked")
.putObject("badge", object).build();
// Create the content
ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
.setPreviewPropertyName("badge").setAction(action)
.build();
ShareDialog.show(Profile.this, content);
我希望这对遇到同样问题的人有所帮助。
如果您正在寻找如何在不使用 ShareDialog
的情况下进行分享:
ShareApi shareApi = new ShareApi(content);
shareApi.share(new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
}
});
您可能还想查看 shareApi.canShare()