доступ к общедоступному листу onedrive с помощью графа Microsoft - PullRequest
0 голосов
/ 26 сентября 2018

Мое (первое) приложение для Android работает довольно хорошо, но у меня осталась одна очень важная проблема, которую я пытаюсь решить в течение нескольких дней

Я пытаюсь использовать Graph для доступа к документу Excel в моемOneDrive из другого аккаунта.Этот файл объявляется общедоступным для всех по ссылке общего доступа.

Я использую следующий GET для получения файла

https://graph.microsoft.com/v1.0/drives/MY_DRIVE/MY_EXCEL_FILE/workbook/worksheets/Data/tables/TableData/rows

Единственная проблема заключается в том, что файлдолжен быть в общей папке пользователя, которую я хотел бы избежать по соображениям безопасности.

Я использую onedrive для бизнеса, но если это проблема, я могу использовать личную учетную запись, хотя пользователи приложения должны использовать бизнес, поскольку я предоставляю доступ только определенной организации.

[ОБНОВЛЕНИЕ 27 сентября 2018 г.]

Что касается файла, который не должен находиться в общей папке, вот почему я так думаю (надеюсь, янеправильно):

  1. , находясь в моей учетной записи onedrive, я делюсь файлом как общедоступным и получаю ссылку для обмена:

    https://MY_ORGANIZATION.sharepoint.com/:x:/g/personal/MY_USER/Eabkxa2md3JEsW0qQEuYRK4BKnnnHeJqNuspeZ6TEdkWsQ
    
  2. Iвойдите в Graph Explorer и запустите команду, чтобы получить тот же файл, что и в Excel JSON:

    https://graph.microsoft.com/v1.0/drives/MY_DRIVE/MY_EXCEL_FILE/workbook/worksheets/Data/tables/TableData/rows
    
  3. Graph Explorer отвечает с HTTP 200 и правильным JSON (как отмечалось, также работает правильно намое приложение для Android).

  4. Я выхожу из Graph Explorer и OneDrive и проверяю, что общая ссылка все еще работает.

  5. Я подключаю GraphПроводник, использующий другую учетную запись (той же организации) и запустить ту же команду, чтобы повторитьRive Excel JSON:

    https://graph.microsoft.com/v1.0/drives/MY_DRIVE/MY_EXCEL_FILE/workbook/worksheets/Data/tables/TableData/rows
    
  6. На этот раз я получаю сообщение "Ошибка - Код состояния 404":

    {
        "error": {
            "code": "itemNotFound",
            "message": "The resource could not be found.",
            "innerError": {
                "request-id": "6d095277-fa07-40ba-bfcb-c93e96660fdc",
                "date": "2018-09-27T15:43:28"
            }
        }
    }
    
  7. Если я введуссылка общего доступа с помощью моего браузера, файл отображается в общем списке (под папками «Недавние» и над папками «Обнаружение» в браузере):

     https://MY_ORGANIZATION.sharepoint.com/:x:/g/personal/MY_USER/Eabkxa2md3JEsW0qQEuYRK4BKnnnHeJqNuspeZ6TEdkWsQ
    
  8. Когда я возвращаюсь в Graph Explorerи снова запустите команду, я получу ответ HTTP 200.

    https://graph.microsoft.com/v1.0/drives/MY_DRIVE/MY_EXCEL_FILE/workbook/worksheets/Data/tables/TableData/rows
    

Мой вывод заключается в том, что файл должен находиться в общей папке.Пожалуйста, исправьте меня, если я что-то упустил.

ps: После того, как файл появляется в папке «shared» 2-й учетной записи, после просмотра OneDrive «Управление доступом» я теперь вижу инициалы 2-й учетной записи.Вероятно, это указывает на то, что файл официально доступен и открыт для общего доступа.Удаление файла из его общей папки, сохранение его инициалов и правильного ответа от Graph Explorer.Похоже, только отмена ссылки на акцию может отменить акцию.

[ОБНОВЛЕНИЕ 27 сентября 2018 - 2]

После еще одного комментария от г-на Марка я изменил вопроснемного и хотел бы отметить, что я также попробовал следующую ссылку, используя мою фактическую ссылку обмена.Это было похоже на ответ (не уверен, точный код ошибки) + другая проблема в получении фактического Excel.

Доступ к общим DriveItems

1 Ответ

0 голосов
/ 28 сентября 2018

Вам необходимо отправить ссылку пользователю или отправить приглашение пользователю, оба рекомендуются.

Если файл содержит конфиденциальную информацию, вам необходимо отделить содержимое от исходного файла,так что может соблюдение GDPR .В настоящее время общий доступ осуществляется на уровне элемента / файла, а не на уровне листа / Excel-строк.

Вы можете использовать действие createLink для предоставления общего доступа к DriveItem через ссылку для совместного использования.

...