当我需要展示完成对象上的Action所花费的时间时,如何指定属性 例如
1 hour 2 minutes
20 minutes
2 minutes 20 seconds etc.
Facebook公开DateTime类型。但我理解它的方式是实际时间而不是间隔。
如何指定我喜欢320秒的东西,OG会在相应的部门中显示它?
答案 0 :(得分:3)
您希望使用duration
文字模板显示您的操作类型的自定义属性。
这是一个在Open Graph Aggregation单元中显示持续时间的示例:
我在对象类型sleep
上有一个操作类型bar
,而我的聚合显示小睡的持续时间。
创建操作类型sleep
,将其连接到对象类型bar
,并创建一个整数的自定义属性sleep_seconds
:
自定义属性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/