Twilio Java SDK中的分页仅返回第一页

时间:2018-07-11 11:47:17

标签: scala twilio twilio-api

我需要使用以下方法通过某个电话号码前缀列出所有可购买的号码:

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多个数字可用

1 个答案:

答案 0 :(得分:1)

这里是Twilio开发人员的传播者。

我相信这是因为可用电话号码资源没有返回分页信息,因此您无法在目录中显示所有可用电话号码。

相反,如果您要选择返回的第一个列表中没有的其他号码,只需再次向列表资源提出请求,就会返回不同的号码。