Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Microsoft graph api 获取所有用户(+直接管理器、照片元数据和属性,如“AboutMe”)_Microsoft Graph Api - Fatal编程技术网

Microsoft graph api 获取所有用户(+直接管理器、照片元数据和属性,如“AboutMe”)

Microsoft graph api 获取所有用户(+直接管理器、照片元数据和属性,如“AboutMe”),microsoft-graph-api,Microsoft Graph Api,到目前为止,我们使用SharePoint内部定制web服务,为所有用户提供大约15000个包含属性,如aboutMe、skills等以及direct manager。这项工作花了大约15分钟。 所有数据都存储在Lucene搜索索引中 现在我们必须切换到O365。 我能够从Microsoft Graph获得所需的所有信息,但这需要花费太长的3-5个小时: 通过/v1.0/users通过分页获取所有用户 遍历集合并 通过/v1.0/[user id]/manager获取给定用户的管理器 通过/v1.

到目前为止,我们使用SharePoint内部定制web服务,为所有用户提供大约15000个包含属性,如aboutMe、skills等以及direct manager。这项工作花了大约15分钟。 所有数据都存储在Lucene搜索索引中

现在我们必须切换到O365。 我能够从Microsoft Graph获得所需的所有信息,但这需要花费太长的3-5个小时:

通过/v1.0/users通过分页获取所有用户 遍历集合并 通过/v1.0/[user id]/manager获取给定用户的管理器 通过/v1.0/[User Id]?$select=aboutMe,skills为给定用户获取属性,如aboutMe,skills
有什么有效的方法来完成这项任务吗?

理想情况下,您只需调用Microsoft Graph来获取所需的数据,而不是尝试将其同步到您自己的数据库中

假设您不能做到这一点,您可以使用/delta endpoint来推断所需的时间。当您使用增量令牌时,您将只返回自上次请求以来已更改添加、删除和编辑的资源。因此,您的第一次通过可能需要几个小时,但随后的通过应该需要几秒钟

您可以使用$select查询参数控制跟踪更改的属性。例如,如果您只关心对displayName的更改,那么使用/v1.0/users/delta?$select=displayName将确保您只收到对该属性的更改。从:

如果使用$select查询参数,则该参数表示客户端更愿意只跟踪$select语句中指定的属性或关系的更改。如果未选择的属性发生更改,则在后续请求后,该属性更改的资源不会出现在增量响应中


也要考虑提高流程的整体性能。批处理允许您在一个请求中向Microsoft Graph发送多个查询,并在一个响应中返回完整的结果

嗯。。。但它只识别由query/users/?query=[props]选择的用户属性的更改,或者不带query GET param的默认属性的更改?是否有机会识别用户是否有更新,如个人资料图像、direct manager、aboutMe、skills等特殊属性?是的,您可以控制在增量中返回/跟踪哪些属性。我已经用这些信息更新了我的答案,所以所有属性都是可跟踪的,这些属性可用于/endpoint用户。其他用户属性,如“manager”、“photo”、“aboutMe”-仅通过/user端点可用-不可跟踪。是否有任何方法可以获取所有添加/更改/删除的用户,其中增量是通过全局状态确定的,例如“updatetimestamp”?也许还有另一个API,Azure Graph API?谢谢你的帮助,顺便说一下: