Twilio Calls资源分页失效,无法获取next_page_uri求助
解决Twilio通话记录分页中获取next_page_uri的问题
问题根源
你用的client.calls.list()方法是SDK封装后的简化调用,默认只返回通话记录的数组,底层的分页元数据(包括next_page_uri)被隐藏了,所以你看不到这些字段。
两种可行解决方案
方案1:获取单页完整分页数据
改用client.calls.page()方法,它会返回包含所有分页元数据的完整响应对象,其中nextPageUrl就是你要的next_page_uri:
const accountSid = process.env.TWILIO_ACCOUNT_SID; const authToken = process.env.TWILIO_AUTH_TOKEN; const client = require('twilio')(accountSid, authToken); client.calls.page({limit: 20}) .then(page => { // 遍历当前页的通话记录 page.instances.forEach(call => console.log(call.sid)); // 获取下一页的API链接(对应原始响应的next_page_uri) console.log('下一页请求地址:', page.nextPageUrl); // 其他分页信息也可以直接获取 console.log('当前页码:', page.page); console.log('每页记录数:', page.pageSize); });
方案2:自动遍历全部分页(无需手动处理next_page_uri)
如果需要获取所有通话记录,直接用SDK的each方法,它会自动检测并请求next_page_uri,直到所有页处理完成:
client.calls.each({limit: 20}, call => { // 处理单条通话记录 console.log(call.sid); }) .then(() => { console.log('所有通话记录处理完毕'); }) .catch(error => { console.error('获取记录出错:', error); });
额外说明
你看到的官方示例里的next_page_uri是Twilio REST API的原始响应格式,Node.js SDK对其做了封装,把分页相关字段转换成了Page对象的属性(比如nextPageUrl对应原始的next_page_uri)。如果需要原始格式的URI,直接使用page.nextPageUrl即可,它就是完整的分页请求地址。
内容的提问来源于stack exchange,提问作者Raj Chandra
相关产品推荐
相关产品推荐

