如何在Open Graph中引用朋友?

时间:2012-08-20 18:29:06

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

我正在创建一个支持Facebook的游戏,用户可以发布“朋友通行证”;玩家将能够(自动)发布的内容,例如:'我在MY_GAME上通过James Brown'。我正在使用Open Graph发布我的操作。我创建了一个名为'pass'的动作和一个名为'friend'的对象。这是我的属性(其中'friendpass'是朋友参考):

pass action

我正在尝试发布诸如“迈克尔在MY_GAME上传递朋友”等动作,并标记我传递的朋友[s?]。如何启用此功能?目前,我已经设置了一个页面(实际上只是元标记)渲染器,这是一个示例渲染页面:

 <html and other headers...>
    <meta property="fb:app_id" content="345390505541783">
    <meta property="og:type" content="smileys-game:friendpass">
    <meta id="ogurl" property="og:url" content="http://apps.canpoyrazoglu.com/smileys/pass/mehmet/sucuk">
    <meta property="og:title" content="Friend passed!">
    <meta property="og:image" content="https://s-static.ak.fbcdn.net/images/devsite/attachment_blank.png">
    <meta id="friendid" property="smileys-game:friend" content="735475141">
    <meta id="ogdesc" property="og:description" content="something comes here.">
    <rest of header and page...>

我使用调试工具来获取Facebook看到的内容,并且作为Graph API调用有一个指向该操作的链接。单击它时会返回OAuth错误,当我将该URL键入Graph API资源管理器时,我得到了:

graph api call result

Graph API将我的“朋友”对象视为网页,实际上是对Facebook ID(我自己的ID)的引用。如何使用有用的朋友ID并在帖子中链接到朋友?

谢谢, 可以。

2 个答案:

答案 0 :(得分:3)

创建操作类型时,需要使用profile对象类型(也称为连接对象类型)。在这里,我创造了我的动词,以及#35;高五&#34;一个人:

action type config

将自动配置对象类型,因为profile是FB提供的内置对象类型。因此,您不必配置对象类型,除非您需要高级设置。

然后创建聚合:

aggregation config

然后,对象的og元标记需要使用类型profile(此示例的文件路径为/og/profile2.html):

<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# high_fiver: http://ogp.me/ns/fb/high_fiver#">
   <meta property="fb:app_id"      content="27877347222" />
   <meta property="og:url"         content="http://www.rottentomatoes.com/celebrity/tom_hanks/" />
   <meta property="og:type"        content="profile" />
   <meta property="og:title"       content="Tom Hanks" />
   <meta property="og:description" content="Tom Hanks profile on RT" />
   <meta property="og:image"       content="http://content6.flixster.com/rtactor/40/37/40376_pro.jpg" />

请注意,您可以指向任何profile,而不仅仅是FB个人资料。上面,我正在使用Tom Hanks&#39;烂番茄上的配置文件,它使用Open Graph并具有og:type profile

我发布了这样的行动:

<script type="text/javascript">
 function postAction() {
   FB.api(
     '/me/high_fiver:high_five' + '?profile=http://www.plooza.com/og/profile2.html',
     'post',
     function(response) {
       if (!response || response.error) {
         alert('Error occured');
         console.log(response.error);
       } else {
         alert('Post was successful! Action ID: ' + response.id);
       }
     }
   );
 }
</script>

最后,我的应用的用户将在他/她的时间轴上发布OG故事(在&#34;时间轴单元&#34;):

profile story unit

点击链接&#34; Tom Hanks&#34;在故事单元中,它加载烂番茄配置文件。

您可以在此处试用此演示应用:http://plooza.com/og/profile2.html

答案 1 :(得分:1)

所以“朋友”是你自己的对象类型?究竟是如何定义的?

我认为,对于您计划在此处执行的操作,内置对象类型Profile可能更适合您的需求 - 因为这已经创建了与Facebook配置文件的关联,这是公开的可识别的曲线图。