Как использовать Microsoft API для загрузки файла в общую папку из другого домена? - PullRequest
0 голосов
/ 20 октября 2018

Я могу использовать Microsoft API для загрузки файла в общую папку в том же домене.Например, user1@mycompany.com отправляет каталог в user2@mycompany.com, затем я могу записать в общую папку через user2@mycompany.com.

Более конкретно, я могу создать сеанс загрузки с использованием следующего API:

https://graph.microsoft.com/v1.0/drives/<drive_id>/items/<dir_id>:/<filename>:/createUploadSession

Однако тот же API вернет 404, если drive_id и dir_id от пользователя другого домена.Например, another@othercompany.com отправьте папку в user2@mycompany.com, затем загрузите файл через user2@mycompany.com.

Сообщение об ошибке от API:

{
    "error": {
    "code": "itemNotFound",
    "message": "The resource could not be found.",
    "innerError": {
        "request-id": "526d86bc-c620-4782-a74d-c8cd8284df8b",
        "date": "2018-10-19T20:54:37"
        }
    }
}

Есть ли API, который будет работать дляЗагрузка файла OneDrive в общую папку в разных доменах?

1 Ответ

0 голосов
/ 22 октября 2018

на данный момент вы можете получить доступ только к дискам из организации аутентифицированной учетной записи.Если alice@company1.com делится с bob@company2.com и bob@company2.com имеет гостевую учетную запись в организации company1, то, я полагаю, если вы войдете в company1 с помощью внешней гостевой учетной записи, вы сможете получить доступ к общейдиск.

В качестве альтернативы, если ваше приложение может проходить проверку подлинности для обеих учетных записей, вы можете воспользоваться тем фактом, что URL-адреса для загрузки и загрузки являются само аутентифицирующимися и выполняют что-то вроде этого:

  1. с использованием токена аутентификации для alice@company1.com, вызовите createUploadSession для папки.
  2. с использованием токена аутентификации для bob@company2.com, загрузите файл, который должен быть предоставлен в общий доступ.
  3. с использованием URL загрузкииз # 1 загрузите файл (другой токен не нужен здесь)
...