我发现了许多有关未读消息计数的链接,但是大多数链接都指向较旧的发行版代码。 在当前的REST API v2中,找到了此代码。
.twilioClient
.chat
.services((process.env.TWILIO_CHAT_SERVICE_SID || config.TWILIO_CHAT_SERVICE_SID))
.users(req.params.userSID)
.userChannels
.list({}, (error, result) => {
for (var item in result) {
let count = item.unread_messages_count == null ? 0 : item.unread_messages_count;
totalUnreadMessages += count;
}
但是代码始终将unread_messages_count显示为null,我从这里搜索**消费范围**。 https://www.twilio.com/docs/chat/consumption-horizon
但是不知道如何通过API设置消费范围或进行其他操作。
答案 0 :(得分:1)
这里是Twilio开发人员的传播者。
注意:聊天不会自动设置“消费范围”。如果您未在应用程序中明确设置此设置,则通道内用户的“消费范围”将不存在。没有Consumption Horizon,用户的Consumption Horizon(
read status
)将无法在客户端之间正确同步。如果用户未在频道上设置“消费范围”,则获取未消费的消息将始终返回0
。如果Channel的成员没有消费状态,则根据平台的不同,其上次消费的索引和时间戳将为null
或0
。
因此,为了有一个消费范围,您需要通过SDK进行设置。在JavaScript中,看起来有点像:
activeChannel.updateLastConsumedMessageIndex(someMessageIndex)
.then(function () {
// consumption horizon updated
});
其中activeChannel
is a channel object that your user has joined和someMessageIndex
是您的用户上次阅读的邮件的索引。
必须通过SDK设置频道的消费范围,才能在REST API中显示。