You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过NodeJS客户端获取Twilio对话的消息总数?

如何通过NodeJS获取Twilio对话的消息总数?

我需要通过NodeJS客户端获取Twilio对话中的消息总数。注意到前端Conversation类有getMessagesCount方法,但NodeJS版Twilio库中没有这个方法。

当前使用的Twilio版本为*"twilio": "^3.70.0"*,我通过以下代码获取对话实例:

const userConversation = await client.conversations
  .services(conversation_service_sid)
  .users(user_id)
  .userConversations(conversation_sid)
  .fetch();
 
const conversation = await client.conversations
  .services(conversation_service_sid)
  .conversations(conversation_sid)
  .fetch();

但UserConversationInstance和ConversationInstance均无getMessagesCount方法。目前只能通过获取全部消息列表再取长度的方式统计消息数,这并非最优方案:

let messages = await client.conversations
  .services(conversation_service_sid)
  .conversations(conversation_sid)
  .messages.list();
let messagesCount = messages.length;

更新尝试方案

尝试使用@twilio/conversations包实现,代码如下:

import twilio from "twilio";
import { Client } from '@twilio/conversations';

const AccessToken = twilio.jwt.AccessToken;
const ChatGrant = AccessToken.ChatGrant;

const chatGrant = new ChatGrant({
  serviceSid: conversationServiceSID,
});
const token = new AccessToken(
  accountSid,
  twilioApiKey,
  twilioApiSecret,
  {identity: userId}
);
token.addGrant(chatGrant);
  
const newclient = new Client(token.toJwt());

let conversation = await newclient.getConversationBySid(conversationSID);
let messagesCount = await conversation.getMessagesCount();

内容的提问来源于stack exchange,提问作者Phi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 05:12:43