Swift3 我如何获得';下一批';在Swift 3中使用MSGraphSDK的用户数量
我正在使用Microsoft Graph获取所有用户,但我只能获取第一批用户(默认批量大小为100)。我可以获得如下所示的第一批,但我看不出框架如何支持获得下一批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:
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的人来说仍然是相关的。。。