0
继此tutorial后,我试图在Android应用程序中使用Facebook SDK 4.0实现OpenGraph故事。
我已经阅读了很多Facebook文档,并理解(理论上)OpenGraph故事应该如何工作。但是主要的问题是,我无法在SDK 4.0中实现它,因为教程和文档中的所有代码示例都被引用到旧SDK的方法中。我所有的努力使其工作(改变行动,对象)失败。Facebook OpenGraph Android的Facebook SDK 4.0中的故事
这里是我的代码(根据documentation ):
// Create an object
ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
.putString("og:type", "books.book")
.putString("og:title", "A Game of Thrones")
.putString("og:description", "In the frozen wastes to the north of Winterfell, sinister and supernatural forces are mustering.")
.putString("books:isbn", "0-553-57340-3")
.build();
// Create an action
ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
.setActionType("books.reads")
.putObject("books:book", object)
.build();
// Create the content
ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
.setPreviewPropertyName("books:book")
.setAction(action)
.build();
ShareButton shareButton = (ShareButton)findViewById(R.id.shareButton);
shareButton.setShareContent(content);
shareButton.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Result result) {
Log.i(TAG, "SHARING SUCCESS!");
}
@Override
public void onError(FacebookException error) {
Log.e(TAG, "SHARING ERROR! - " + error.getMessage());
}
@Override
public void onCancel() {
Log.w(TAG, "SHARING CANCEL!");
}
});
什么我得到(用我所有的尝试):
行动至少需要一个参考:您尝试 发布的操作无效,因为它没有指定任何参考对象。 至少必须指定以下属性之一:book。
请,你能解释一下,如何使用SDK 4.0的方法来纠正FB SDK 4.0使用OpenGraph,并正确使用Objects
与Actions
。
谢谢,它的工作原理应该如此。请同时更新此[页面](https://developers.facebook.com/docs/sharing/android#open_graph)。 – VadymVL
但现在有混淆,你应该在哪里使用命名空间,哪里不是。 我正在尝试在练习册报价上实施。 'ShareOpenGraphAction action = new ShareOpenGraphAction.Builder() .setActionType(“books.quotes”) .putString(“body”,“To be,or not to be ...”) .putObject(“book”,对象) .build();'我应该只使用“body”还是“quotes:body”或“books:quotes:body”?有了这段代码,我可以成功地分享这本书,但报价并未附上。 – VadymVL
@Ming Li“book”旁边的setPreviewPropertyName(...)使用了哪些类型? –