Swift3 我如何获得';下一批';在Swift 3中使用MSGraphSDK的用户数量

Swift3 我如何获得';下一批';在Swift 3中使用MSGraphSDK的用户数量,swift3,microsoft-graph-api,ios10.3,Swift3,Microsoft Graph Api,Ios10.3,我正在使用Microsoft Graph获取所有用户,但我只能获取第一批用户(默认批量大小为100)。我可以获得如下所示的第一批,但我看不出框架如何支持获得下一批 func getUsers(...) { var i = 0 self.graphClient.users().request().getWithCompletion{ (collection:MSCollection?, nextLink:MSGraphUsersCollectionRequest?, error:

我正在使用Microsoft Graph获取所有用户,但我只能获取第一批用户(默认批量大小为100)。我可以获得如下所示的第一批,但我看不出框架如何支持获得下一批

func getUsers(...) {
  var i = 0

  self.graphClient.users().request().getWithCompletion{
    (collection:MSCollection?, nextLink:MSGraphUsersCollectionRequest?, error:Error?) in

    if let nsError = error {
      NSLog("failed - message: \(nsError.localizedDescription)")
    } else {
      if let users = collection {

        for user: MSGraphUser in users.value as! [MSGraphUser] {
          i = i+1
          print("\(i): \(user.optDisplayName ?? "<empty>")")

          self.save(user)
        }

        // TODO: Handle next batch...
        if users.nextLink != nil {
          //self.getNextUsers(users.nextLink)
        }
      }
    }
  }
}
func getUsers(…){
变量i=0
self.graphClient.users().request().getWithCompletion{
(集合:MSCollection?,nextLink:msGraphUserCollectionRequest?,错误:error?)位于
如果让N错误=错误{
NSLog(“失败-消息:\(nsError.localizedDescription)”)
}否则{
如果让用户=集合{
对于用户:users.value中的MSGraphUser![MSGraphUser]{
i=i+1
打印(“\(i):\(user.optDisplayName??)”)
self.save(用户)
}
//TODO:处理下一批。。。
如果users.nextLink!=nil{
//self.getNextUsers(users.nextLink)
}
}
}
}
}

用户。nextLink
是URL链接,而
nextLink
是一个请求对象,已使用下一页的URL初始化,您可以使用
getWithCompletion
调用该URL,并遵循与所示请求相同的模式

嗨,Kim,你看到了用户的哪些值。nextLink和nextLink?我看到了预期的下一批的链接。。。但是框架不会自动获取它们,我可以看到如何在请求中使用nextlink。。。我只得到一个无限循环…在你的getNextUsers实现中-你应该检查是否设置了“nextLink”-如果设置了,你有一个新的页面可用。否则,如果它是零,你就完了。如果您想提前终止,我会在方法中添加一个参数,跟踪页面(或资源)的数量在某一点上的变化,以便在达到限制时终止。这有帮助吗?我可以看到如何使用SDK框架完成这项工作。。。您可以向request()添加一些选项,但不能添加其他选项。我试图添加skiptoken,但没有成功。我实际上跳过了MSGraphSDK,现在使用p2.OAuth2。现在我可以控制请求(需要一个beta方法和SDK不支持的用户上的delta请求)。但是我认为这个问题对于其他使用MSGraphSDK的人来说仍然是相关的。。。