如何检索 Twilio 可编程聊天频道中的所有消息?
How to retrieve all messages in a Twilio Programmable Chat Channel?
privatechannel.getMessages().then(function (messages) {
const totalMessages = messages.items.length;
for (let i = 0; i < totalMessages; i++) {
const message = messages.items[i];
console.log('Author:' + messages.author);
printMessage(message.author, message.body);
}
console.log('Total Messages:' + totalMessages);
deleteNotifs()
});
这在 Twilio 文档中被列为检索最新消息的方式。我试过了,它显示的最大消息数连 100 条都不到,它只显示对话中的最后 30 条消息。
有没有办法检索和显示 所有 Twilio 可编程聊天频道(私人或其他)中的消息?
由于您的代码中没有语法错误,因此很可能与速率限制 API 有关。考虑检查 Twilio 文档,API 限制类型(免费与付费订阅)
这里是 Twilio 开发人员布道者。
当您向 channel.getMessages()
发出请求时,您可以执行一些操作来获得超过默认的前 30 条消息。
首先,您可以传递一个 pageSize
以从每个请求中获取更多消息。 pageSize
默认为 30,最多(我认为)100。
privatechannel.getMessages(100).then(function(messagePaginator) {
// deal with the messages
});
如果您想超过 100 条消息,那么您会从文档中注意到 getMessages
returns a Promise that resolves to a Paginator<Messages>
。 Paginator
对象具有您已用于访问消息的 items
属性。它还具有 hasNextPage
和 hasPrevPage
属性,告诉您是否有更多消息可用。
还有 nextPage
和 prevPage
函数 return 您正在使用的 Paginator
的下一页或上一页。
因此,在您的示例中,您可以像这样获取并打印频道中的所有消息:
const messages = [];
let totalMessages = 0;
function receivedMessagePaginator(messagePaginator) {
totalMessages += messagePaginator.items.length;
messagePaginator.items.forEach(function (message) {
printMessage(message.author, message.body);
messages.push(message);
});
if (messagePaginator.hasNextPage) {
messagePaginator.nextPage().then(receivedMessagePaginator);
} else {
console.log("Total Messages:" + totalMessages);
}
}
privatechannel.getMessages().then(receivedMessagePaginator);
如果有帮助请告诉我。
privatechannel.getMessages().then(function (messages) {
const totalMessages = messages.items.length;
for (let i = 0; i < totalMessages; i++) {
const message = messages.items[i];
console.log('Author:' + messages.author);
printMessage(message.author, message.body);
}
console.log('Total Messages:' + totalMessages);
deleteNotifs()
});
这在 Twilio 文档中被列为检索最新消息的方式。我试过了,它显示的最大消息数连 100 条都不到,它只显示对话中的最后 30 条消息。
有没有办法检索和显示 所有 Twilio 可编程聊天频道(私人或其他)中的消息?
由于您的代码中没有语法错误,因此很可能与速率限制 API 有关。考虑检查 Twilio 文档,API 限制类型(免费与付费订阅)
这里是 Twilio 开发人员布道者。
当您向 channel.getMessages()
发出请求时,您可以执行一些操作来获得超过默认的前 30 条消息。
首先,您可以传递一个 pageSize
以从每个请求中获取更多消息。 pageSize
默认为 30,最多(我认为)100。
privatechannel.getMessages(100).then(function(messagePaginator) {
// deal with the messages
});
如果您想超过 100 条消息,那么您会从文档中注意到 getMessages
returns a Promise that resolves to a Paginator<Messages>
。 Paginator
对象具有您已用于访问消息的 items
属性。它还具有 hasNextPage
和 hasPrevPage
属性,告诉您是否有更多消息可用。
还有 nextPage
和 prevPage
函数 return 您正在使用的 Paginator
的下一页或上一页。
因此,在您的示例中,您可以像这样获取并打印频道中的所有消息:
const messages = [];
let totalMessages = 0;
function receivedMessagePaginator(messagePaginator) {
totalMessages += messagePaginator.items.length;
messagePaginator.items.forEach(function (message) {
printMessage(message.author, message.body);
messages.push(message);
});
if (messagePaginator.hasNextPage) {
messagePaginator.nextPage().then(receivedMessagePaginator);
} else {
console.log("Total Messages:" + totalMessages);
}
}
privatechannel.getMessages().then(receivedMessagePaginator);
如果有帮助请告诉我。