SharePoint Rest API как получить токен доступа?

Просто начинаю работать с аутентификацией SharePoint и Microsoft и пытаюсь добавить список SharePoint в приложение JavaScript. Из документации Microsoft мне нужно использовать следующее:

GET https://{site_url}/_api/web/lists/GetByTitle('List Title')
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"

Искали повсюду, чтобы найти окончательный ответ на вопрос, как получить этот токен доступа. Вся документация, которую я могу найти от Microsoft, кажется устаревшей. Кто-нибудь знает текущий метод получения accessToken?


person L_H    schedule 09.08.2020    source источник
comment
Вы можете взглянуть на следующее, что мне помогло: anexinet .com / blog / Get-an-access-token-for-sharepoint-online.   -  person Darrel K.    schedule 08.12.2020


Ответы (2)


Для вызова API-интерфейсов, специфичных для SharePoint, необходимо получить токен доступа для SPO. Вы можете заменить обычный токен обновления MS Graph на специальный токен SPO, выполнив следующие действия:

  1. Получите токен делегированной аутентификации из графа, как обычно (https://docs.microsoft.com/en-us/graph/auth-v2-user).
  2. Используйте полученный вами refresh_token и обменяйте его на токен доступа SPO, снова вызвав конечную точку аутентификации:
POST https://login.microsoftonline.com/{{tenantName}}/oauth2/v2.0/token

Со следующими данными формы:

client_id=<APP ID>
client_secret=<APP SECRET>
refresh_token=<REFRESH TOKEN FROM ABOVE>
grant_type=refresh_token
scope=https://<YOUR TENANT NAME>.sharepoint.com/Sites.Read.All
  1. Берем токен доступа и вызываем SPO API

Вы должны убедиться, что ваше приложение зарегистрировано с правильными разрешениями. В приведенном выше случае приложение должно иметь, например, Sites.Read.All.

person Chris Johnson    schedule 13.08.2020
comment
Он должен быть помечен как Ответ! Спасибо, действительно работает. @ chris-johnson, было бы неплохо поделиться ссылками на документацию по этому подходу. - person 23W; 24.05.2021

Вы можете обратиться к этой статье, чтобы получить токен доступа:

https://global-sharepoint.com/sharepoint-online/in-4-steps-access-sharepoint-online-data-using-postman-tool/

Post https://accounts.accesscontrol.windows.net/<Tenant ID>/tokens/OAuth/2

Тело:

grant_type     client_credentials
client_id      <Client ID>
client_secret  <Client Secret>
resource       00000003-0000-0ff1-ce00-000000000000/<tenant>.sharepoint.com@<Tenant ID>

Мой результат теста:

введите описание изображения здесь

person Michael Han_MSFT    schedule 10.08.2020