Twilio REST API V2-如何获取用户的未读消息计数?

时间:2018-11-26 14:43:10

标签: twilio twilio-api

我发现了许多有关未读消息计数的链接,但是大多数链接都指向较旧的发行版代码。 在当前的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设置消费范围或进行其他操作。

1 个答案:

答案 0 :(得分:1)

这里是Twilio开发人员的传播者。

the documentation说:

  

注意:聊天不会自动设置“消费范围”。如果您未在应用程序中明确设置此设置,则通道内用户的“消费范围”将不存在。没有Consumption Horizo​​n,用户的Consumption Horizo​​n(read status)将无法在客户端之间正确同步。如果用户未在频道上设置“消费范围”,则获取未消费的消息将始终返回0。如果Channel的成员没有消费状态,则根据平台的不同,其上次消费的索引和时间戳将为null0

因此,为了有一个消费范围,您需要通过SDK进行设置。在JavaScript中,看起来有点像:

activeChannel.updateLastConsumedMessageIndex(someMessageIndex)
  .then(function () {
    // consumption horizon updated
  });

其中activeChannel is a channel object that your user has joinedsomeMessageIndex是您的用户上次阅读的邮件的索引。

必须通过SDK设置频道的消费范围,才能在REST API中显示。