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/getting-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