使用Facebook Open Graph API创建对象

问题描述:

我使用Google App Engine来托管我的Facebook应用程序,因为它在配额方面最为慷慨。我想使用Open Graph API来发布操作(烹饪披萨,烹饪鸡肉,烹饪馅饼等)使用Facebook Open Graph API创建对象

由于Python Facebook SDK现在已被弃用,我想知道是否有人可以解释限制我的应用程序的哪些功能可以访问的方面。好像我可以使用JavaScript SDK来认证用户,发布动作等

这是我在我的应用程序界面的HTML客户端meta标签:

<meta property="fb:app_id"  content="250027595026486" /> 
<meta property="og:type"  content="socialdocking:chemical" /> 
<meta property="og:url"   content="http://beta2.socialdocking.appspot.com/" /> 
<meta property="og:title"  content="Sample Chemical" /> 
<meta property="og:description" content="Some Arbitrary String" /> 
<meta property="og:image"  content="https://s-static.ak.fbcdn.net/images/devsite/attachment_blank.png" /> 

怎样才可以有“化学品样品”和“化学品”的不同值不需要从服务器手动写入?是否可以在发布操作之前使用AJAX检索值并更改“Sample Chemical”值?换句话说,我是否必须遵守开放图形“对象”由单个网页表示的设计,还是我可以使用单个网页同时表示多个对象?

谢谢!

你不能在Facebook上刮脸前用Javascript动态地设置元标签。你必须从服务器端进行。然而,你想在这里完成的并不需要你使用Facebook SDK。下面是一个关于如何做到这一点的PHP示例:Generating Facebook Open Graph meta tags dynamically我相信你可以将该代码转换为Python。

当Facebook抓取工具击中表示和识别Open Graph对象(比如化学物)的URI时,它将解析OG标签并将该数据以URI作为标识符进行存储。

这样,你将有一个URI http://example.com/chemicals/1渲染

... 
<meta property="og:title"  content="Potassium Nitrate" /> 
<meta property="og:description" content="totse.com was really cool" /> 
... 

http://example.com/chemicals/2渲染

... 
<meta property="og:title"  content="Whateverium Sulfate" /> 
<meta property="og:description" content="This makes things go boom." /> 
... 

为了使这更清楚,这里发生了什么。这是一个动态页面,它响应URI末尾的数字作为查询化学数据库的参数:(ERB示例)。

... 
<meta property="og:title"  content="<%= @chemical.name %>" /> 
<meta property="og:description" content="<%= @chemical.description %>" /> 
...