Smartsheet api 如何获取包括上次登录在内的所有用户的列表

Smartsheet api 如何获取包括上次登录在内的所有用户的列表,smartsheet-api,smartsheet-api-2.0,Smartsheet Api,Smartsheet Api 2.0,关于员工使用smartsheet许可证的问题,我有一个仪表板要为我的组织做。 通常,获取此类信息的请求如下(根据文件): 但是,此请求每页仅显示100个结果。我只想得到所有的结果 文档表明,为了获得完整的结果列表,必须向请求中添加另一个参数。请求变成: https://api.smartsheet.com/2.0/users?include=lastLogin&includeAll=true 它是有效的,但是我只得到了没有上次登录的用户的完整列表,这让我回到了我的问题:如何获得包括上

关于员工使用smartsheet许可证的问题,我有一个仪表板要为我的组织做。 通常,获取此类信息的请求如下(根据文件):

但是,此请求每页仅显示100个结果。我只想得到所有的结果

文档表明,为了获得完整的结果列表,必须向请求中添加另一个参数。请求变成:

https://api.smartsheet.com/2.0/users?include=lastLogin&includeAll=true 

它是有效的,但是我只得到了没有上次登录的用户的完整列表,这让我回到了我的问题:如何获得包括上次登录在内的所有用户的列表?

因此,根据操作文档,当响应中返回的结果数小于等于100时,指定
include=lastLogin
查询字符串参数将仅包括响应中每个
User
对象的
lastLogin
属性。(FWIW,我怀疑Smartsheet实现了这种行为,因为如果单个API请求试图为数百或数千个用户获取
lastLogin
值,这将对API性能有害。)

好消息是——你仍然可以得到你想要的信息——这只需要你付出一点额外的努力(和代码)。您需要为每页结果提交一个单独的API请求(即,包括
include=lastLogin
query string参数和
page
query string参数,以指定每个请求要检索的结果页码),然后将所有响应的结果合并到一个列表中,并写入仪表板。初始
列表用户
响应中的
totalPages
属性的值将告诉您有多少个可用的总页面(默认情况下每个页面有100个用户,如果您希望每个
用户
对象都包含
lastLogin
属性,则一次可以请求的最大用户数)——即。,您需要发出多少请求才能获取所有用户以及每个用户的
lastLogin
属性

例如,您的第一个请求是:

GEThttps://api.smartsheet.com/2.0/users?include=lastLogin

…让我们假设响应如下所示:

{
  "pageNumber": 1,
  "pageSize": 100,
  "totalPages": 3,
  "totalCount": 100,
  "data": [
    ...
  ]
}
{
  "pageNumber": 2,
  "pageSize": 100,
  "totalPages": 3,
  "totalCount": 100,
  "data": [
    ...
  ]
}
此响应将包含前100个用户——但响应告诉您这只是三个可用结果页面的第一页(即响应中
totalPages
属性的值为
3
)——因此您需要再发出两个请求才能检索到完整的用户集

因此,接下来发出第二个请求,这次包括
page
参数,以指定您想要第2页:

GEThttps://api.smartsheet.com/2.0/users?include=lastLogin&page=2

…响应将返回第二页结果,如下所示:

{
  "pageNumber": 1,
  "pageSize": 100,
  "totalPages": 3,
  "totalCount": 100,
  "data": [
    ...
  ]
}
{
  "pageNumber": 2,
  "pageSize": 100,
  "totalPages": 3,
  "totalCount": 100,
  "data": [
    ...
  ]
}
此响应将包含接下来的100个用户——即三个可用页面中的第二个页面——您需要再发出一个请求才能检索到完整的用户集

最后,您发出第三个请求,这次包括
page
参数,以指定您想要第3页:

GEThttps://api.smartsheet.com/2.0/users?include=lastLogin&page=3


…响应包含第三页(在本例中是最后一页)的结果,如下所示(其中,
totalCount
属性的值是一个数值>=1,谢谢。老实说,我已经考虑过你的解决方案,但似乎我太懒了。这让我现在别无选择。再次感谢你。很高兴能提供帮助!如果你能将此答案标记为“已接受”,这将使其他人将来更有可能从中受益。谢谢!