загрузка файла ms graph на сайт sharepoint - PullRequest
0 голосов
/ 03 августа 2020

По какой-то странной причине я не могу загружать файлы или создавать папки на диске с помощью 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». Каждое дело, которое я пытаюсь отправить немедленно, закрывается.

У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 26 августа 2020

Хорошо - обновление к этому. В итоге я привлек службу поддержки Microsoft O365, и мы провели собрание Teams, на котором я поделился экраном и показал им проблему. Они попросили меня попробовать несколько вещей (в том числе создать новый сайт Sharepoint), и проблема не исчезла. Излишне говорить, что они сами были в тупике. Затем я попросил некоторых коллег попробовать загрузить файлы на сайт Sharepoint, и у них это сработало. Оказывается, что-то странное не так с моей регистрацией в приложении Azure. Понятия не имею, что это было, потому что вся его конфигурация была такой же, как у моего коллеги. В итоге я создал новую регистрацию приложения, и когда я ее использую, все начало работать.

...