如何使用outlook rest image api获取其他用户的个人资料图片

时间:2017-12-28 13:40:36

标签: outlook-restapi

我正在尝试构建一个具有 outlook office 365 登录的小型Web应用程序。

所以我能够使用以下API获取登录用户的图像:

GET https://outlook.office.com/api/v2.0/me/photo
GET https://outlook.office.com/api/v2.0/Users('{user_id}')/photo

当我通过user_id其他用户时,我收到以下错误。

{
  "error": {
    "code": "ErrorAccessDenied",
    "message": "Access is denied. Check credentials and try again."
  } 
}

但是当我在Azure Sandbox做同样的事情时,一切都进展顺利。我能够获得所有用户的图像。

我在这里做错了吗?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

有几点需要注意:

  1. 您通常应使用Microsoft Graph而不是Outlook REST API。虽然它们在功能上重叠,但Microsoft Graph是未来的核心Microsoft API。您的呼叫(和身份验证令牌请求)将非常相似:

    GET https://graph.microsoft.com/v1.0/me/photo/$value
    GET https://graph.microsoft.com/v1.0/users/{userPrincipalName}/photo/$value
    
  2. 在对用户进行身份验证时,使用的正确术语是“使用Microsoft登录”。通常使用此图像显示:

    Sign in with Microsoft Badge

    您可以在Branding Guidelines for Application

  3. 中找到完整的详细信息

    至于您在此处收到的具体错误,您需要将User.ReadBasic.All permission scope添加到您的授权请求中。我怀疑你现在只要求User.Read。这只允许您访问当前用户的信息。您需要其他权限才能访问租户中的其他用户。