Я могу нормально получать фотографии профиля, но сталкиваюсь с ошибкой ErrorAccessDenied при попытке обновить фотографии. Согласно этому:
https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/profilephoto_update
Должно быть достаточно разрешения User.ReadWrite. Я назначил своему приложению эту привилегию с помощью manage.windowsazure.com (а также пытался предоставить все виды других привилегий), но все равно получаю ошибку. Вот текущий набор привилегий, которые я предоставил приложению:
Directory.AccessAsUser.All Directory.Read.All Directory.ReadWrite.All email Group.Read.All Group.ReadWrite.All MailboxSettings.ReadWrite offline_access profile User.Read User.Read.All User.ReadBasic.All User.ReadWrite User.ReadWrite.All
Я получаю токен Bearer с потоком client_credentials следующим образом:
curl -d grant_type=client_credentials \
-d client_id=CLIENT_ID \
-d client_secret=CLIENT_SECRET
-d resource=https://graph.microsoft.com \
https://login.microsoftonline.com/DOMAINNAME/oauth2/token
Затем я пытаюсь обновить фотографию профиля следующим образом:
curl -H "Authorization: Bearer BEARERTOKEN" \
--request PATCH \
-H "Content-Type: image/jpeg" \
-d @photo.jpg
https://graph.microsoft.com/v1.0/users/USERPRINCIPALNAME/photo/\$value
И я получаю следующую ошибку:
{
"error": {
"code": "ErrorAccessDenied",
"message": "Access is denied. Check credentials and try again.",
"innerError": {
"request-id": "REQUESTID",
"date": "2016-05-23T16:42:21"
}
}
}