我的情况如下: 我正在使用stream-js库。我将某些事件的条目添加到用户的通知源中,例如注释,关注等。在写给他们的源后,我还会向该用户的设备发送推送通知。
如果用户单击推送通知,我希望能够将相应的活动标记为可见。当前无法执行此操作,因为add
或addToMany
调用不会返回添加的活动的ID供我发送通知有效载荷。
理想情况下,我希望有一种方法来标记通知供稿项,以活动组ID或其他唯一ID(或foreignId
)显示。有没有办法做到这一点?如果没有,那有什么选择呢?
答案 0 :(得分:1)
此答案分为两部分:
各种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_seen
或{{1 }}选项。 ({mark_read
会将所有项目标记为可见或已读,而活动 group ID数组将仅标记那些项目。)
在该调用中,通知供稿将返回 ,而不会将这些项标记为可见或已读-但在 next 调用中,检索通知供稿的项将被标记为已查看或已读相应地。
更多有关此的文档:https://getstream.io/docs/#notification-feeds
true
活动组ID 您可能已经注意到添加活动时获得了活动ID,但是在标记看到或阅读的项目时需要传递活动组 ID。
所有通知源实际上也都是聚合的源-默认情况下,它们使用的聚合格式只是活动ID,这意味着每个活动组将只有一个活动,而活动组ID将与活动ID相同。因此,您可以仅使用-->
调用返回的活动ID来获取通知供稿,并将该活动组标记为可见或已读。
如果您没有使用默认的汇总格式(例如,活动组ID与活动ID 不相同),则可能必须检索通知供稿并抓取从那里开始的必要活动组ID。