Facebook上的一个简单功能是显示朋友的帖子,以及朋友分享的帖子.在共享帖子的情况下,它被标题为“Kelly和4个其他人”共享的XYZ帖子.此外,如果你的几个朋友分享了这个帖子,Facebook汇总了
我想要一种方法,用于在用户的时间轴(平面Feed)中显示聚合和平面Feed类型.我有以下Feed设置:
时间线馈送(扁平)
用户提要(平)
每次用户A跟随用户B时,我都会调用getstream来更新用户A的时间轴提要以跟随用户B的用户提要.
除了上述内容之外,我还想做的是作为向用户展示的示例时间轴:
Flat Post 1(来自以下用户A)
Flat Post 2(来自以下用户B)
聚合帖子1(你关注的4个人分享了帖子X)
Flat Post 3(来自以下用户A)
Flat Post 4(来自以下用户C)
聚合帖子2(你关注的3个人赞了Y的帖子)
现在看来,这样做的方法是我必须从getstream获取时间轴提要中的活动,然后还获取聚合提要并以某种方式将两者混合在我们的后端上?
您可以通过使用单个聚合Feed并调整聚合规则来实现此目的.在你的情况下,你似乎需要的是:>将同一职位的股份分组在一起
>在单项活动上保留帖子
>小组喜欢同一个帖子
如下所示的聚合规则应该有效(未经过测试):
{% if verb.infinitive == 'like' %} "likes"-{{ object }} {% elif verb.infinitive == 'share' %} "share"-{{ object }} {% elif verb.infinitive == 'post' %} "post"-{{ object }} {% else %} {{ actor }}-{{ verb.infinitive }}-{{ time.strftime('%H') }} {% endif %}
快速解释这项工作是如何到期的.聚合规则用于确定活动如何组合在一起.您可以将它们视为使用activity作为参数执行的函数.实际上,聚合规则类似于输出字符串的Jinja2模板.
如果两个活动的输出相同,则它们将属于同一个聚合活动.
例如:Tom喜欢发布“xyz”的活动,James喜欢发布“xyz”的活动将输出like-xyz,因此将被组合在一起.另一方面,Sam发布的“xyz”活动将输出post-xyz并假设只有一个名为xyz的帖子,它将永远不会与其他活动分组.
我的建议是使用Stream的仪表板中提供的预览功能将一些示例数据发送到Feed并调整您的聚合规则.