我想在facebook上分享用户使用我的应用程序玩游戏。而且我想表明他在玩谁(可标记的朋友)。 我添加了一个新故事" Play"与#34;游戏比赛"宾语。行动"玩"是自动生成的。 现在我想为用户创建一个共享对话框,所以他实际上可以在Facebook上分享它。不幸的是我的代码不起作用。但是,当我使用游戏匹配对象的示例url地址时,它渲染得很好,似乎工作正常。到底是怎么回事?你能解释一下问题是什么吗?这是我的代码。请查看标有注释" Way ##"的3行。当第一种方式#1被取消注释时,一切正常,但我想使用我刚刚创建的对象,所以我尝试使用方式#2,但是我得到的错误是"失败为用户生成预览"。
ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
.putString("og:type", "games.match")
.putString("og:title", "Quick Draw Round")
.putString("og:image", "https://s-static.ak.fbcdn.net/images/devsite/attachment_blank.png")
.putString("games:players", "499827376")
.putInt("games:score", 100)
.putString("og:determiner", "a")
.putString("fb:app_id", "224658110883993")
.build();
ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
.setActionType("queuedroid-test:play")
.putString("match", "http://samples.ogp.me/413385652011237") // Way #1
// .putObject("match", object) // Way #2
.build();
ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
.setPreviewPropertyName("match")
.setAction(action)
.build();
ShareDialog dlg = new ShareDialog(activity);
dlg.registerCallback(mCallbackManager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
Log.d(TAG, "onSuccess: SUCCESS");
}
@Override
public void onCancel() {
Log.d(TAG, "onCancel: CANCEL");
}
@Override
public void onError(FacebookException error) {
Log.d(TAG, "onError: " + error.toString());
}
});
dlg.show(content);
答案 0 :(得分:0)
它的名称Space不包括在内。
第.putObject("match", object)
行应更改为
.putObject("queuedroid-test:match", object)
其中queuedroid-test是https://developers.facebook.com/apps
上的应用名称空间