Microsoft Graph API-为用户列出联系人列表不起作用?

时间:2019-07-29 18:37:35

标签: microsoft-graph

我正在尝试使用“列表联系人” Microsoft Graph v1.0 API(https://docs.microsoft.com/en-us/graph/api/user-list-contacts?view=graph-rest-1.0)来检索组织中各个用户的联系人。换句话说,我想以委派的方式列出联系人。

我的问题是,此API仅适用于与访问令牌相关的用户,例如:

  1. 获取用户“ A”的Microsoft Graph API令牌
  2. 请求https://graph.microsoft.com/v1.0/users/USER_A_ID/contacts正常
  3. https://graph.microsoft.com/v1.0/users/USER_B_ID/contacts的请求失败

API返回的错误是:

{
  "error": {
    "code": "ErrorAccessDenied",
    "message": "Access is denied. Check credentials and try again.",
    "innerError": {
      "request-id": "[REQUEST_ID]",
      "date": "[DATE]"
    }
  }
}

我已经通过解码JWT令牌并检查“ scp”字段来验证令牌包含“ Contacts.Read”范围,所以我不明白为什么API拒绝访问。关于为什么失败的任何想法?

1 个答案:

答案 0 :(得分:0)

您需要的Contacts.Read.Shared或Contacts.ReadWrite.Shared,您当前的Contacts.Read范围将仅允许您访问当前用户的Contacts文件夹。另一件事是,仍然需要向用户请求授予目标邮箱文件夹的基础委托权限(通过Outlook委托或Add-MailboxFolderPermission,例如,他们需要能够通过Outlook或OWA访问该文件夹)。