1

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

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

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

如何指定我喜欢的 320 秒并且 OG 会在适当的分区中显示它?

4

1 回答 1

3

您想使用duration文本模板来显示您的操作类型的自定义属性。

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

在此处输入图像描述

sleep我在 object-type有一个 action-type bar,我的 Aggregation 显示小睡的持续时间。

创建 action-type sleep,将其连接到 object-type bar,并创建sleep_seconds一个 Integer 自定义属性:

在此处输入图像描述

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

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

在此处输入图像描述

我的对象类型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/

于 2012-11-05T20:28:18.903 回答