#sharepoint #onedrive
#sharepoint #onedrive
Вопрос:
Используя Postman в Windows с учетной записью, отличной от учетной записи пользователя onedrive, к которой я пытаюсь получить доступ, у нас есть список личных файлов пользователей «Мои файлы», отображаемых в Sharepoint для пользователей OneDrive по URL:
https://xxxxxxxxxuk-my.sharepoint.com/personal/rob_xxxxxxxxxlimited_com/_layouts/15/onedrive.aspx
Я зарегистрировал надстройку здесь
https://xxxxxxxxxuk-my.sharepoint.com/personal/rob_xxxxxxxxxlimited_com/_layouts/15/appregnew.aspx
Я сгенерировал идентификатор клиента, секрет, домен приложения = localhost, URL перенаправления = https://localhost
Я предоставил разрешения с помощью appinv.aspx в том же месте, нажал «Доверять этому»:
Я получил идентификатор пользователя и ресурс, перейдя в client.svc. Я могу получить access_token со всей этой информацией без проблем:
grant_type client_credentials
client_id xxxxxxx-dbce-4a7e-bfd4-b7954546d4f8@xxxxxxx-f51f-4360-8e47-8ac7c82aecf7
client_secret xxxxxxx9SDjt6ELYGS4PP5NFLWxCnAWDSvxiH78fzDE=
resource 00000003-0000-0ff1-ce00-000000000000/xxxxxxxxuk-my.sharepoint.com@xxxxxxx-f51f-4360-8e47-8ac7c82aecf7
Возвращенный токен доступа, похоже, работает — изначально мы получали тип токена не разрешен, но мы запускаем это в powershell, и бог избавил от этой ошибки:
set-spotenant -DisableCustomAppAuthentication $ false
Что я хочу сделать, так это получить список файлов и папок в этом расположении и, в конечном счете, перейти к папке «Записи» и загрузить элементы. Я не уверен в синтаксисе.
https://xxxxxxxxxuk-my.sharepoint.com/personal/rob_xxxxxxxxxlimited_com/_layouts/15/_api/web/lists/getbytitle('My files')/items
Это возвращает значение 404. Я использую авторизацию: Bearer eyJ …, как было получено на предыдущих шагах, и принимаю application / json; odata = подробные заголовки.
тот же 404 для
https://xxxxxxxxxuk-my.sharepoint.com/personal/rob_xxxxxxxxxlimited_com/_layouts/15/_api/web?$select=Title
Кто-нибудь может помочь с тем, почему я это получаю? Есть ли более простой запрос API, который больше похож на «привет, мир» для этой папки?
Эти URL-адреса разные, я получаю 403, у вас нет разрешения:
https://xxxxxxxxxuk-my.sharepoint.com/_api/web/lists/getbytitle('My files')/items?$select=Title
https://xxxxxxxxxuk-my.sharepoint.com/_api/web?$select=Title
Ответ №1:
При использовании потока учетных данных может потребоваться предоставить приложению разрешение для зарегистрированного приложения:
- Зарегистрировать приложение
- Предоставить разрешения (_layouts/15/appinv.aspx)
<AppPermissionRequests AllowAppOnlyPolicy="true"> <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="FullControl" /> </AppPermissionRequests>
- Приобрести токен
- Отправить запрос Api:
Больше ссылок:
BR
Комментарии:
1. Спасибо. Здесь много деталей, которые выглядят так, как будто мы пытаемся сделать это правильно, но я тщательно проверю ваши. Очень удобно указать окончательный URL-адрес «hello world» в виде [sharepoint]/_api/web/lists. В настоящее время я провожу некоторое расследование с помощью powerscript, чтобы выяснить, связано ли это с учетной записью пользователя.