Microsoft Graph API - 展开用户照片

时间:2017-12-28 12:40:42

标签: microsoft-graph

我目前正在尝试使用Microsoft Graph API获取所有用户信息,我想知道是否有更简洁的方法来获取用户照片以替换我目前正在做的事情。

我目前正在做以下事情;

  1. 致电https://graph.microsoft.com/beta/users?$expand=manager抓取用户详细信息 注意:我正在使用测试版API,因为我似乎无法获得经理数据。

  2. 迭代用户,然后针对每个用户来电https://graph.microsoft.com/beta/users/{user_id}/photos

  3. 对于我回来的每张照片;

    1. 调用https://graph.microsoft.com/beta/users/{user_id}/photos/{photo_id}获取元数据(例如id,height和width)。 注意:我发现初始照片的高度和宽度并不总是正确的,而他们正在接听此电话(所以我只使用这个用于细节)
    2. 致电https://graph.microsoft.com/beta/users/{user_id}/photos/{photo_id}/$value以获取图片。
  4. 这会在用户查询之上产生大量单独的API调用;

    • 为每个用户打电话获取照片数组
    • 为每张照片获取照片元数据
    • 为每张照片获取照片二进制数据。

    如果大型组织每人使用不同尺寸的多张个人资料照片,这可能很快就会变得非常重要。

    有没有办法在初始用户调用中扩展照片数据,以避免必须执行所有这些额外的API调用?

    谢谢, 约翰

1 个答案:

答案 0 :(得分:2)

约翰夫妇。

  1. 调用GET https://graph.microsoft.com/v1.0/me/photos API基本上是一种查看可用照片尺寸的方法。您可以根据自己的经验优化所需的尺寸 - 例如,如果它是移动设备,您可以选择最小尺寸(或第二小尺寸)。如果是桌面设备,您可以选择最大尺寸。请求GET https://graph.microsoft.com/v1.0/me/photo(不是单数)将获取最大可用照片的元数据。较小的尺寸是最大照片的缩放版本。在某些情况下,只有一种尺寸可供选择。请参阅详细信息here。因此,我不确定为什么您需要获取每张个人资料照片尺寸(它是相同的照片,但尺寸不同)。
  2. 你应该看一下批处理,在一次往返中进行多个API调用。请参阅此batching topic。注意:批处理仍在预览中,但很快就会进行。
  3. 希望这有帮助,