我需要使用以下方法通过某个电话号码前缀列出所有可购买的号码:
def queryLocal(numberToBuy: NumberToBuy)
(implicit client: TwilioRestClient, ec: ExecutionContext): List[String] ={
val cc = numberToBuy.countryCode
val prefix = numberToBuy.numberPrefix.tail
val reader: LocalReader = Local.reader(cc).setVoiceEnabled(true).setContains(prefix)
@tailrec def inner(acc: List[String], currentPage: Page[Local]): List[String] = {
if (currentPage.hasNextPage){
val nextPage = reader.nextPage(currentPage)
val newAcc = nextPage.getRecords.asScala.toList.map(_.getPhoneNumber.toString) ++ acc
inner(newAcc, nextPage)
} else {
acc
}
}
val page: Page[Local] = reader.firstPage(client)
inner(page.getRecords.asScala.toList.map(_.getPhoneNumber.toString), page)
}
但是它总是只返回第一页(30条记录),因为hasNextPage
始终为假,即使有30多个数字可用
答案 0 :(得分:1)
这里是Twilio开发人员的传播者。
我相信这是因为可用电话号码资源没有返回分页信息,因此您无法在目录中显示所有可用电话号码。
相反,如果您要选择返回的第一个列表中没有的其他号码,只需再次向列表资源提出请求,就会返回不同的号码。