如何查看是否已阅读 twilio 消息?

How to see if a twilio message has been read?

我有一个 nextjs 项目,我集成了 twilio 可编程聊天。它基本上有效。下一步是添加通知,由于未更新或缺少文档,我遇到了很大的问题。我尝试了 this guide 网络推送通知,但我放弃了,因为在第 7 步之后我不知道该做什么,也找不到任何相关信息。

我现在想做的是获取消息的状态,并在阅读后最终更新它们。首先有可能做到吗?我在互联网上找不到任何关于 twilio 网络通知的信息。

例如,如果我想获取特定房间的消息,我会执行以下操作:

const response = await getTwilioClient(token, unique_room_name);
const messages = await response.channel.getMessages(MESSAGES_LIMIT);

messages 具有以下形状:

{
  hasNextPage: boolean,
  hasPrevPage: boolean,
  items: Message[],
  nextPage: () => Message[],
  prevPage: () => Message[],
}

Message 看起来像这样:

那么如何查看消息的状态?

消息阅读状态实际上存储在成员对象上。成员是代表频道中用户的对象,它有一个 lastConsumedMessageIndex property 与他们阅读的最后一条消息有关。

为了阅读 lastConsumedMessageIndex 属性,您需要使用 Channel 方法 advanceLastConsumedMessageIndex, setAllMessagesConsumed or setNoMessagesConsumed.

设置会员阅读到的位置

我建议您阅读 Message Consumption Horizon and Read Status 上的文档。

额外说明一下,我看到您在询问有关 Twilio Chat 的问题,但是 Twilio Chat will be coming to the end of life in July 2022. We recommend that you migrate to the Twilio Conversations API 相反。