使用Facebook Open Graph API创建对象

Creating objects with the Facebook Open Graph API

本文关键字:API 创建对象 Graph Open Facebook 使用      更新时间:2023-09-26

我使用谷歌应用引擎来托管我的Facebook应用程序,因为它在配额方面是最慷慨的。我想使用Open Graph API发布操作(做披萨、做鸡肉、做馅饼等)

由于Python Facebook SDK现在已被弃用,我想知道是否有人能解释我的应用程序在访问哪些功能方面的局限性。我似乎可以使用JavaScript SDK来验证用户、发布操作等。

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

<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" />

如何在不从服务器手动写入的情况下为"Sample Chemical"answers"Chemical"设置不同的值?在发布操作之前,是否可以使用AJAX检索值并更改值"Sample Chemical"?换句话说,我是否必须遵守开放图"对象"由单个网页表示的设计,或者我可以使用单个网页同时表示多个对象?

谢谢!

在Facebook抓取元标签之前,您不能使用Javascript动态设置元标签。您必须从服务器端执行此操作。然而,你想在这里完成的并不需要你使用Facebook SDK。下面是一个关于如何做到这一点的PHP示例:动态生成Facebook Open Graph元标记我相信你可以将这些代码转移到Python中。

当Facebook爬网程序命中表示和标识Open Graph对象(例如,化学品)的URI时,它将解析OG标签,并将该数据与URI一起存储为标识符。

因此,您将有一个URIhttp://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 %>" />
...