你好,
我有一个简单的需求,列出AGOL订阅中的所有用户。我在我的组织的AGOL订阅中有管理员角色。我的组织有超过1000个用户,我使用UserManager和advance_search来分页。示例代码如下
um = UserManager(self.gis)
Current_user = 0
# TODO:找到只列出组织用户的最佳模式
#当前下面的代码列出了每个AGOL用户
user_search_pattern = "access: org OR access: public OR access: private"
users_searches = um.advanced_search(query=user_search_pattern,start=current_user, max_users=self.MAX_USERS, as_dict=True, return_count=False)
While (len(users_searches ['results']) > 0):
Current_user += len(users_searching ['results'])
对于users_searches ['results']中的用户:
用户名= user[' Username ']
User_details = self.get_user_details(用户名)
#待办事项:不确定这是正确的逻辑,以确定用户是否是本地AGOL组织用户
#现在,使用这个逻辑
如果user_details中的'orgId':
self.org_users[username] = user_details['orgId']
#获取下一页用户
users_searches = um.advanced_search(query=user_search_pattern,开始= current_user max_users = self.MAX_USERS)
print("已找到的#{}组织用户总数。".format(len(self.org_users))))
上面的代码非常慢。我正在努力寻找正确的答案查询我应该使用的参数。我已经尝试了所有不同的组合,他们都要么给空结果或列出每个AGOL用户,包括那些不属于我的组织。如果我在浏览器中打开我的AGOL的组织页面,我有1309个用户。浏览器的开发工具告诉我,它运行url参数“q=(*)”和分页参数。我如何得到相同的结果使用ArcGIS API的Python脚本?
欢呼,
Vish
解决了!转到解决方案。