По какой-то странной причине я не могу загружать файлы или создавать папки на диске с помощью MS Graph API. Я могу просматривать / перечислять и даже удалять без каких-либо проблем. То же самое и с личными файлами OneDrive ... Я могу перечислять и удалять, но не загружать или создавать папки. Я даже не могу создать сеанс загрузки. Насколько я могу судить, я правильно настроил разрешения API (из-за возможности перечислять и удалять), но что-то не так. Я использую Ruby и его Net :: HTTP-класс для выполнения HTTP-запросов, но я пробовал и с другими языками, даже с Github Javascript SDK (https://github.com/microsoftgraph/msgraph-sdk-javascript ) и Java SDK (https://github.com/microsoftgraph/msgraph-sdk-java). Каждая моя попытка приводит к одной и той же ошибке 400 (неверный запрос). Мой запрос выглядит так:
PUT /v1.0/drives/b!0jlSfAMWs0mywYCiVQrxB8cBs6dbx0FDr8CYTNg4ITob3Q2lz0OER6Snzs1G_vHh/items/01L5VYWTF6Y2GOVW7725BZO354PWSELRRZ:/test.txt:/content HTTP/1.1
Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept: application/json
User-Agent: Ruby
Host: graph.microsoft.com
Authorization: Bearer <my auth code>
Content-Type: text/plain
Connection: close
Content-Length: 24
My test.txt file content
Ответ об ошибке не содержит полезной информации для диагностики моей проблемы:
HTTP/1.1 400 Bad Request
Cache-Control: private
Content-Type: application/json
request-id: c42545c0-ee40-40f3-9c7d-19d0e69d8ac8
client-request-id: c42545c0-ee40-40f3-9c7d-19d0e69d8ac8
x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"North Central US","Slice":"SliceC","Ring":"3","ScaleUnit":"003","RoleInstance":"AGSFE_IN_45"}}
Strict-Transport-Security: max-age=31536000
Date: Mon, 03 Aug 2020 16:23:47 GMT
Connection: close
Content-Length: 215
{
"error": {
"code": "invalidRequest",
"message": "Invalid request",
"innerError": {
"date": "2020-08-03T20:35:44",
"request-id": "c42545c0-ee40-40f3-9c7d-19d0e69d8ac8"
}
}
Я пробовал несколько разных путей для этого запроса PUT, чтобы загрузите файл и получите в ответ ту же ошибку:
sites/#{site_id}/drive/items/01L5VYWTF6Y2GOVW7725BZO354PWSELRRZ:/test.txt:/content
sites/#{site_id}/drive/root:/test.txt:/content
me/drive/items/01FF6DWVN6Y2GOVW7725BZO354PWSELRRZ:/test.txt:/content
me/drive/root:/test.txt:/content
Моя регистрация в приложении имеет следующие разрешения API, и я запрашиваю каждое из них при запросе токена доступа OAuth:
openid
email
profile
https://graph.microsoft.com/User.Read
https://graph.microsoft.com/Files.Read
https://graph.microsoft.com/Files.Read.All
https://graph.microsoft.com/Files.ReadWrite
https://graph.microsoft.com/Files.ReadWrite.All
https://graph.microsoft.com/Sites.Manage.All
https://graph.microsoft.com/Sites.Read.All
https://graph.microsoft.com/Sites.ReadWrite.All
Опять же - я получаю похожие ошибки при попытке создать папку на любом диске или при попытке создать сеанс загрузки. Это оба запроса POST с телом JSON на несколько другой URL-адрес, но конечный результат тот же ... ошибка 400 без абсолютно никакой полезной информации. То же самое происходит в конечной точке «бета».
Microsoft не поможет мне, если я не являюсь «клиентом Unified Support или Premium». Каждое дело, которое я пытаюсь отправить немедленно, закрывается.
У кого-нибудь есть идеи?