Microsoft Graph REST API v1.0 - 使用应用程序权限列出个人联系人
Microsoft Graph REST API v1.0 - List personal contacts using application permissions
我已经在 Azure 门户中注册了一个 Web 应用程序,授予它 Contacts.Read
权限,给予它管理员同意,现在尝试使用 Microsoft Graph REST 列出特定用户的个人联系人 API v1.0 使用此应用程序。
起初我试图通过发送 POST
请求来获取访问令牌
https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token
具有以下 body 参数:scope=https://graph.microsoft.com/contacts.read
、grant_type=client_credentials
、我的 client_id
和我的 client_secret
.
作为回应,我收到一个错误 400 Bad Request
。 Body:
{"error":"invalid_scope","error_description":"AADSTS70011: The provided request must include a 'scope' input parameter. The provided value for the input parameter 'scope' is not valid. The scope https://graph.microsoft.com/contacts.read is not valid."}
当我像这样替换令牌请求中的范围参数时:scope=https://graph.microsoft.com/.default
,我实际上收到了 200 OK
和我的 Bearer 令牌作为响应。
但是当我通过使用此令牌向 https://graph.microsoft.com/v1.0/users/{user_id}/contacts
发送 GET
请求来请求用户个人联系人时,我收到 401 Unauthorized
响应并出现以下错误:
"code": "NoPermissionsInAccessToken",
"message": "The token contains no permissions, or permissions can not be understood.",
我也曾尝试用 {app_id_uri}/.default
和 {app_id_uri}/contacts.read
替换令牌请求中的 scope
值,但没有成功。
那么我如何使用 Microsoft Graph REST API v1.0 列出用户个人联系人?我做错了什么?
编辑:权限截图:
保持范围:
您将需要应用程序权限(管理员):
- users.read.all
- contacts.read
如果你想add/edit联系
,我会选择读写版本
我还使用 offline_access
的委派权限
您已在旧交换中设置联系人,改为添加图表联系人权限。
我授予我的应用程序错误的权限。 Contacts.Read
和 User.Read.All
权限在 Exchange
部分而不是 Microsoft Graph
部分。
我在 Microsoft Graph
部分授予了这些权限,一切正常。其实Contacts.Read
权限就够了。
P.S。范围是 https://graph.microsoft.com/.default
我已经在 Azure 门户中注册了一个 Web 应用程序,授予它 Contacts.Read
权限,给予它管理员同意,现在尝试使用 Microsoft Graph REST 列出特定用户的个人联系人 API v1.0 使用此应用程序。
起初我试图通过发送 POST
请求来获取访问令牌
https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token
具有以下 body 参数:scope=https://graph.microsoft.com/contacts.read
、grant_type=client_credentials
、我的 client_id
和我的 client_secret
.
作为回应,我收到一个错误 400 Bad Request
。 Body:
{"error":"invalid_scope","error_description":"AADSTS70011: The provided request must include a 'scope' input parameter. The provided value for the input parameter 'scope' is not valid. The scope https://graph.microsoft.com/contacts.read is not valid."}
当我像这样替换令牌请求中的范围参数时:scope=https://graph.microsoft.com/.default
,我实际上收到了 200 OK
和我的 Bearer 令牌作为响应。
但是当我通过使用此令牌向 https://graph.microsoft.com/v1.0/users/{user_id}/contacts
发送 GET
请求来请求用户个人联系人时,我收到 401 Unauthorized
响应并出现以下错误:
"code": "NoPermissionsInAccessToken",
"message": "The token contains no permissions, or permissions can not be understood.",
我也曾尝试用 {app_id_uri}/.default
和 {app_id_uri}/contacts.read
替换令牌请求中的 scope
值,但没有成功。
那么我如何使用 Microsoft Graph REST API v1.0 列出用户个人联系人?我做错了什么?
编辑:权限截图:
保持范围:
您将需要应用程序权限(管理员):
- users.read.all
- contacts.read
如果你想add/edit联系
,我会选择读写版本我还使用 offline_access
的委派权限您已在旧交换中设置联系人,改为添加图表联系人权限。
我授予我的应用程序错误的权限。 Contacts.Read
和 User.Read.All
权限在 Exchange
部分而不是 Microsoft Graph
部分。
我在 Microsoft Graph
部分授予了这些权限,一切正常。其实Contacts.Read
权限就够了。
P.S。范围是 https://graph.microsoft.com/.default