Smartsheet api 如何获取包括上次登录在内的所有用户的列表
关于员工使用smartsheet许可证的问题,我有一个仪表板要为我的组织做。 通常,获取此类信息的请求如下(根据文件): 但是,此请求每页仅显示100个结果。我只想得到所有的结果 文档表明,为了获得完整的结果列表,必须向请求中添加另一个参数。请求变成: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 它是有效的,但是我只得到了没有上次登录的用户的完整列表,这让我回到了我的问题:如何获得包括上
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,谢谢。老实说,我已经考虑过你的解决方案,但似乎我太懒了。这让我现在别无选择。再次感谢你。很高兴能提供帮助!如果你能将此答案标记为“已接受”,这将使其他人将来更有可能从中受益。谢谢!