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

Twilio REST API V2 - How to get unread message count for a user?

我发现了很多关于未读消息计数的链接,但其中大部分都指向旧版本代码。 从 Current 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,我从这里搜索了 **consumption horizo​​n **。 https://www.twilio.com/docs/chat/consumption-horizon

但不知道如何设置消费范围或其他东西来使这项工作通过 API。

此处为 Twilio 开发人员布道师。

正如 the documentation 所说:

Note: Chat does not automatically set the Consumption Horizon. If you do not explicitly set this within your application, no Consumption Horizon will exist for a User within the Channel. Without a Consumption Horizon, your user's Consumption Horizon (read status) will not synchronize correctly across clients. If a user does not have a Consumption Horizon set on a channel, getting unconsumed messages will always return 0. If a member of a Channel has no consumption status, their last consumed index and timestamp will be null or 0 depending on the platform.

所以,为了有一个消费范围,你需要通过SDK来设置它。在 JavaScript 中,看起来有点像:

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

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

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