Twilio 中的分页 Java SDK returns 只有第一页

Pagination in Twilio Java SDK returns only the first page

我需要通过特定的 phone 号码前缀列出所有可供购买的号码,方法如下:

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)
}

但它总是 returns 只有第一页(30 条记录),因为 hasNextPage 总是错误的,即使有超过 30 个数字可用

这里是 Twilio 开发人员布道者。

我认为这是因为没有分页信息 return 可用的 phone 号码资源,所以您无法显示所有可用的 phone 号码在目录中。

相反,如果您想选择第一个列表中不可用的其他号码 return,只需再次向列表资源发出请求,就会 returned .