SharePoint Rest API如何获取访问令牌?

SharePoint Rest API如何获取访问令牌?,sharepoint,microsoft-graph-api,sharepoint-online,Sharepoint,Microsoft Graph Api,Sharepoint Online,刚刚开始使用SharePoint和Microsoft身份验证,并尝试将SharePoint列表导入JavaScript应用程序。从Microsoft文档中,我需要使用以下内容: GET https://{site_url}/_api/web/lists/GetByTitle('List Title') Authorization: "Bearer " + accessToken Accept: "application/json;odata=verbose"

刚刚开始使用SharePoint和Microsoft身份验证,并尝试将SharePoint列表导入JavaScript应用程序。从Microsoft文档中,我需要使用以下内容:

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

我们已经到处搜索,以找到如何获取此accessToken的最终答案。我能从微软找到的所有文档似乎都过时了。有人知道获取accessToken的当前方法吗?

您可以参考本文获取accessToken:

Posthttps://accounts.accesscontrol.windows.net//tokens/OAuth/2
正文:

授予\u类型客户端\u凭据
客户识别码
客户机密
资源00000003-0000-0ff1-ce00-000000000000/.sharepoint.com@
我的测试结果:


要调用特定于SharePoint的API,您需要获取特定于SPO的访问令牌。您可以通过执行以下操作将常规MS Graph刷新令牌“交换”为特定于SPO的令牌:

GET https://{site_url}/_api/web/lists/GetByTitle('List Title')
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"
  • 像通常一样,从图中获取委派的身份验证令牌 ()
  • 使用您获得的刷新令牌,并通过再次调用身份验证端点将其交换为SPO访问令牌:
  • 使用以下表格数据:

    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
    
    client\u id=
    客户机密=
    刷新令牌=
    授予\类型=刷新\令牌
    范围=https://.sharepoint.com/Sites.Read.All
    
  • 获取访问令牌并调用SPOAPI

  • 您必须确保您的应用程序已使用正确的权限注册。在上述情况下,应用程序必须具有Sites.Read.All(例如)。

    您可以查看以下帮助信息:它应标记为Answer(答案)!谢谢,真的很管用@chris johnson,很高兴分享关于这种方法的文档中的链接参考。
    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