如何创建和使用自托管对象在Android中共享自定义故事?

时间:2014-06-02 13:40:16

标签: android facebook facebook-graph-api facebook-opengraph facebook-canvas

我正在开发一款游戏应用。我正在我的app中分享facebook自定义故事。我创建了一个自托管对象(html页面)。

我想在android,ios和Facebook canvas应用程序中使用相同的自托管对象。 我已经完成了自定义故事共享而没有使用Android应用程序的自托管对象,下面是我的相同代码

OpenGraphObject objProperty = OpenGraphObject.Factory.createForPost("namespace:level"); 

objProperty.setProperty("title","Title");
objProperty.setProperty("image","http://www.example.com/jokedemo/image/wrong.jpg");
objProperty.setProperty("url", "http://www.example.com");       
objProperty.setProperty("description", "Can you beat me?");

OpenGraphAction action = GraphObject.Factory.create(OpenGraphAction.class);
action.setProperty("level", objProperty);  
FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(FBActivity.this, action,"namespace:unlock", "level").build();

unlock是我的行动,level是我的对象。

但我希望它能够使用我创建的自托管对象,以便我可以为所有平台(Android,IOS,Web)使用相同的对象。

在文档中提到自托管对象对于多平台应用程序比使用Object api更有用。 我遵循了这个https://developers.facebook.com/docs/opengraph/using-objects/#selfhosted文档,但无法在Android上找到如何使用它的任何地方。

我创建自托管对象的代码(html页面)

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta property="fb:app_id"          content="*************" /> 
<meta property="og:type"            content="namespace:level" /> 
<meta property="og:title"           content="Title" /> 
<meta property="og:url"               content="https://example.com/namespace/level.html" /> 
<meta property="og:description"     content="Can you beat me?" /> 
<meta property="og:image"           content="https://example.com/namespace/image/abc.png" /> 

</head>
<body>
</body>
</html>

如果我想在我的Android中使用自托管对象,那么我的工作代码会有哪些变化,或者我必须以另一种方式进行更改?

任何建议都将受到高度赞赏,请提前感谢。

2 个答案:

答案 0 :(得分:1)

最后我解决了它,实际上文件本身就存在方法,但是没有特别提到这个代码将用于自托管对象。

以下是我的代码:

OpenGraphAction action = GraphObject.Factory.create(OpenGraphAction.class);
action.setProperty("level","https://example.com/namespace/level.html");   //here "level" is the Object name and url is the self hosted object
action.setType("namespace:unlock");    //"unlock" is the Action name
FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(FBActivity.this, action, "level").build();

答案 1 :(得分:0)

有一个在FB文档中使用URL(自托管对象)的示例。虽然他们现在称它为app拥有的对象。即将测试它。

https://developers.facebook.com/docs/ios/ui-controls#share-appownedobjects