gpt4 book ai didi

getstream-io - 一种无需阅读通知源即可将通知标记为可见的方法?

转载 作者:行者123 更新时间:2023-12-02 20:19:53 24 4
gpt4 key购买 nike

我的情况是这样的:我正在使用stream-js 库。我将某些事件的条目添加到用户的通知源中 - 评论、关注等。在写入他们的源后,我还会向该用户的设备发送推送通知。

如果用户单击推送通知,我希望能够将相应的事件标记为可见。目前无法执行此操作,因为 addaddToMany 调用不会返回已添加事件的 ID,以便我在通知负载中发送。

理想情况下,我希望有一种方法可以通过事件组 ID 或其他唯一 ID(或 foreignId)来标记通知源项目。有没有办法做到这一点?如果没有,有什么替代方案?

最佳答案

这个答案分为两部分:

获取您刚刚添加的事件的 ID

各种 Stream 客户端库中的 addActivity 调用(在本例中我使用 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'
}

将通知源项目标记为已查看或已读

将通知提要项标记为已查看或已读的方法有点奇怪 - 首先,您像平常一样获取提要,但您还将传入 mark_seenmark_read 选项。 (true 会将所有项目标记为已查看或已读,并且事件 ID 数组将仅标记这些项目。)

从该调用中,将返回通知源,将项目标记为已查看或已读 - 但下一个检索通知源的调用将标记项目相应地。

更多相关文档:https://getstream.io/docs/flat_feeds/#notification_feeds

事件 ID --> 事件组 ID

您可能已经注意到,添加事件时会获取事件 ID,但在标记已查看或已读项目时,需要传入事件 ID。

所有通知源实际上也是聚合源 - 默认情况下,它们使用的聚合格式只是事件 ID,这意味着每个事件组只有一个事件,并且事件组 ID 将与事件 ID 相同。因此,您只需使用 addActivity 调用返回的事件 ID 即可获取通知源并将该事件组标记为已查看或已读。

如果您不使用默认聚合格式(例如,事件组 ID 与事件 ID 不同),那么您可能必须检索通知源并获取从那里获取必要的事件组 ID。

关于getstream-io - 一种无需阅读通知源即可将通知标记为可见的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51424975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com