getstream-io – 如何使用聚合和平面类型构建新闻源?
Facebook上的一个简单功能是显示朋友的帖子,以及朋友分享的帖子.在共享帖子的情况下,它被标题为“Kelly和4个其他人”共享的XYZ帖子.此外,如果你的几个朋友分享了这个帖子,Facebook汇总了它们,只显示一次帖子,它不会多次显示. Facebook似乎在同一时间线视图中显示平面Feed和聚合Feed.
我想要一种方法,用于在用户的时间轴(平面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并调整您的聚合规则. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |