打开图表:如何指定所用时间的属性

时间:2012-11-03 08:46:34

标签: facebook facebook-graph-api

当我需要展示完成对象上的Action所花费的时间时,如何指定属性 例如

1 hour 2 minutes
20 minutes 
2 minutes 20 seconds etc. 

Facebook公开DateTime类型。但我理解它的方式是实际时间而不是间隔。

如何指定我喜欢320秒的东西,OG会在相应的部门中显示它?

1 个答案:

答案 0 :(得分:3)

您希望使用duration文字模板显示您的操作类型的自定义属性。

这是一个在Open Graph Aggregation单元中显示持续时间的示例:

enter image description here

我在对象类型sleep上有一个操作类型bar,而我的聚合显示小睡的持续时间。

创建操作类型sleep,将其连接到对象类型bar,并创建一个整数的自定义属性sleep_seconds

enter image description here

自定义属性sleep_seconds将以秒为单位保持小睡的持续时间。

接下来,创建一个显示持续时间的OG聚合(称为duration文本模板):

enter image description here

我的对象类型bar有一个名为rating的自定义属性,这对duration并不重要,但我只是为了好玩而展示它 - 它保留了这个有多好的评级酒吧是为了睡觉:)。

最后,要发布一个动作,我使用js-sdk并包含持续时间sleep_seconds

function post() {
  FB.api(
    '/me/esmithy_one:sleep',
    'post',
    {bar: 'http://www.plooza.com/og/bar11.html',
     sleep_seconds: 60*60*1 + 60*39 + 2  // h m s
    },
    function(response) {
      if (!response || response.error) {
        console.log(response);
        alert('Error occured');
      } else {
        console.log(response);
        alert('Post was successful! Action ID: ' + response.id);
      }
    }
  );
}

如果你真的想显示“1小时39分2秒”而不是1:39:02,那么你可以在你的代码中计算它,将它转换为字符串,并将字符串保存为自定义属性动作类型。当然,您的操作类型的自定义属性为string而不是integer

你可以尝试这个很棒的应用程序: http://plooza.com/og/sleep1.html

如果您无法将聚合单元显示在用户的时间轴中,请尝试删除所有其他聚合,但要显示的除外。测试我的测试应用时,我必须这样做。此外,发布足够的操作来填充聚合单元。

更多信息: https://developers.facebook.com/docs/opengraph/template/