一种无需阅读通知提要即可将通知标记为可见的方法?

时间:2018-07-19 14:15:47

标签: getstream-io

我的情况如下: 我正在使用stream-js库。我将某些事件的条目添加到用户的通知源中,例如注释,关注等。在写给他们的源后,我还会向该用户的设备发送推送通知。

如果用户单击推送通知,我希望能够将相应的活动标记为可见。当前无法执行此操作,因为addaddToMany调用不会返回添加的活动的ID供我发送通知有效载荷。

理想情况下,我希望有一种方法来标记通知供稿项,以活动组ID或其他唯一ID(或foreignId)显示。有没有办法做到这一点?如果没有,那有什么选择呢?

1 个答案:

答案 0 :(得分:1)

此答案分为两部分:

获取刚刚添加的活动的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_seen或{{1 }}选项。 ({mark_read会将所有项目标记为可见或已读,而活动 group ID数组将仅标记那些项目。)

在该调用中,通知供稿将返回 ,而不会将这些项标记为可见或已读-但在 next 调用中,检索通知供稿的项将被标记为已查看或已读相应地。

更多有关此的文档:https://getstream.io/docs/#notification-feeds

活动ID true活动组ID

您可能已经注意到添加活动时获得了活动ID,但是在标记看到或阅读的项目时需要传递活动 ID。

所有通知源实际上也都是聚合的源-默认情况下,它们使用的聚合格式只是活动ID,这意味着每个活动组将只有一个活动,而活动组ID将与活动ID相同。因此,您可以仅使用-->调用返回的活动ID来获取通知供稿,并将该活动组标记为可见或已读。

如果您没有使用默认的汇总格式(例如,活动组ID与活动ID 相同),则可能必须检索通知供稿并抓取从那里开始的必要活动组ID。