我正在尝试在Twilio聊天中根据一些用户的平均响应时间进行分析。
我正在遍历我的频道,并且能够提取有关消息的信息,因此我可以比较消息未响应的时间。但是,我当时无法确定该频道中有哪些用户。
频道上有什么可以给我历史会员数据的东西吗?频道中的是谁? channel.messages().list()
方法仅向我提供发送到该频道的消息的文本以及该消息的来源,但是我可能一直在频道中响应整个频道生命周期中的更改的用户。
这是在使用node.js SDK的后端上。注意:这不是我要完成的工作的完整实现,但是请逐步采取措施来访问我需要执行的信息。当我收到这些消息并知道在给定时间应该在频道中的用户之后,我便可以进行分析,以查看要响应的用户花费了多长时间。
var fs = require('fs');
const Twilio = require('twilio');
const client = new Twilio(env.TWILIO_ACCOUNT_SID, env.TWILIO_AUTH);
const service = client.chat.services(env.TWILIO_IPM_SERVICE_SID);
async function getChatMessages() {
const fileName = 'fileName.csv';
const getLine = message => {
return `${message.channelSid},${message.sid},${message.dateCreated},${message.from},${message.type},${message.body}\n`;
}
const writeToFile = message => { fs.appendFileSync(fileName, getLine(message)); };
const headerLine = `channelSid,messageSid,dateCreated,author,type,body`;
fs.writeFileSync(fileName, headerLine);
await service.channels.each(
async (channel, done) => {
i++;
let channelSid = channel.sid;
if( channel.messagesCount == 0 ) return;
try {
await channel.messages().list({limit:1000, order:"asc"}).then(
messages => {
messages.forEach( writeToFile );
}
);
} catch(e) {
console.log(`There was an error getting messages for ${channelSid}: ${e.toString()}`);
}
if( i >= max ) done();
}
);
}
我开始对这样一个事实感到沮丧,那就是,如果我没有设置合适的事件侦听器/网络钩子,那么这可能是不可能的。如果是这样,我想知道,以便进行设置。但是,如果有任何端点我可以联系到并查看谁正在加入/离开某个频道,那将是目前的理想选择。
答案 0 :(得分:0)
答案是,很遗憾,您无法追溯获取此数据。 Twilio提供了一个用于聊天的webhooks API,您可以使用该API自己跟踪发生的数据,但是,如果不捕获事件,就无法再次访问它们。