如何通过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
相关产品推荐
相关产品推荐

