我的情况如下:我正在使用stream-js 库。我将某些事件的条目添加到用户的通知源中 - 评论、关注等。在写入他们的源后,我还会向该用户的设备发送推送通知。
如果用户单击推送通知,我希望能够将相应的活动标记为可见。目前无法做到这一点,因为 add或addToMany调用不会返回添加的活动的 ID 供我在通知负载中发送。
理想情况下,我想要一种方法来标记通知源项目,如活动组 ID 或其他唯一 ID(或 )所示foreignId。有没有办法做到这一点?如果不是,还有什么替代方案?
这个答案分为两部分:
addActivity各种 Stream 客户端库(我在本例中使用)中的调用将stream-js返回创建的活动,其中应包含活动 ID。响应看起来像这样:
{
actor: 'ken',
duration: '9.65ms',
foreign_id: '',
id: '8b5d69a9-8b73-11e8-98ab-12cb9e7b86a4',
object: 'some-object',
origin: null,
target: '',
time: '2018-07-19T16:48:21.045496',
verb: 'add-activity'
}
Run Code Online (Sandbox Code Playgroud)
将通知提要项目标记为已查看或已读的方法有点奇怪 - 首先,您像平常一样获取提要,但您还将传递mark_seen或mark_read选项。(true将所有项目标记为已查看或已读,并且活动组ID 数组将仅标记这些项目。)
从该调用中,将返回通知源,但不将项目标记为已查看或已读 - 但下一次检索通知源的调用将相应标记项目。
更多相关文档:https ://getstream.io/docs/flat_feeds/#notification_feeds
-->活动组ID您可能已经注意到,添加活动时会获取活动 ID,但在标记已查看或已读项目时需要传入活动组ID。
所有通知源实际上也是聚合源 - 默认情况下,它们使用的聚合格式只是活动 ID,这意味着每个活动组只有一个活动,并且活动组 ID 将与该活动相同ID。因此,您可以仅使用调用返回的活动 ID 来addActivity获取通知源并将该活动组标记为已查看或已读。
如果您不使用默认聚合格式(例如,活动组 ID与活动 ID不同),那么您可能必须检索通知源并从那里获取必要的活动组 ID。
| 归档时间: |
|
| 查看次数: |
1055 次 |
| 最近记录: |