การรับรองความถูกต้องกับบริการของ Google

ถ้าสคริปต์ของคุณใช้บริการของ Google เช่น Google ไดรฟ์ แผ่นงาน และจดหมาย คุณจําเป็นต้องรับข้อมูลประจําตัว มีตัวเลือกสองสามตัวเลือกสําหรับการรับข้อมูลประจําตัว:

  • ตัวเลือกที่ 1 — ทําตามได้ง่ายและใช้เวลาน้อยกว่า แต่คุณต้องทําซ้ําทุกๆ ชั่วโมงเมื่อโทเค็นการเข้าถึงหมดอายุ
  • ตัวเลือกที่ 2 — ซับซ้อนมากขึ้นเล็กน้อย แต่คุณเพียงต้องทําซ้ําหากโทเค็นรีเฟรชไม่ถูกต้องเท่านั้น
  • ตัวเลือกที่ 3 — ซับซ้อนขึ้นเล็กน้อย (ใช้สคริปต์ PowerShell ที่ให้มา) แต่คุณเพียงต้องทําซ้ําหากโทเค็นรีเฟรชไม่ถูกต้อง

ตัวเลือกที่ 1 - การรับโทเค็นการเข้าถึงจาก Google OAuth Playground

  1. ไปที่ Google OAuth Playground
  2. ใน ป้อนขอบเขตของคุณเอง ให้วาง https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/gmail.send
  3. เลือก API การอนุญาต
  4. หลังจากที่ API ได้รับอนุญาตแล้ว ให้เลือก รหัสการตรวจสอบ Exchange สําหรับโทเค็น
  5. คัดลอกค่าของ access_token จากการตอบกลับ
  6. ในโซลูชัน เช่น การค้นหาโฆษณาที่ไม่ได้รับอนุมัติ ซึ่งเข้าถึงบริการของ Google ให้ตั้งค่าเขตข้อมูลของ accessToken วัตถุข้อมูลประจําตัวเป็นโทเค็นการเข้าถึงที่คัดลอกไว้ในขั้นตอนที่ 5

หมายเหตุ

เนื่องจากโทเค็นการเข้าถึงจะหมดอายุใน 1 ชั่วโมง คุณจะต้องทําขั้นตอนเหล่านี้ซ้ําทุกชั่วโมง

ตัวเลือกที่ 2 - รับโทเค็นรีเฟรชจาก Google OAuth Playground

  1. ไปที่คอนโซลนักพัฒนา Google แดชบอร์ด API
  2. เลือก สร้างโครงการ เพื่อสร้างโครงการใหม่ หรือเลือกโครงการที่มีอยู่
    1. ถ้าคุณสร้างโครงการใหม่ ให้ใส่ชื่อโครงการของคุณใน ชื่อโครงการ ตัวอย่างเช่น สคริปต์
    2. เลือก สร้าง
  3. บน แดชบอร์ด ให้เลือก เปิดใช้งาน API และบริการ
  4. ในกล่องค้นหา ให้ป้อนชีตและเลือกGoogle Sheets API จากนั้นเลือก เปิดใช้งาน
  5. กลับไปที่แดชบอร์ด (เลือก API & บริการ) แล้วทําซ้ําขั้นตอนที่ 3 และ 4 สําหรับ Google Drive API
  6. กลับไปที่แดชบอร์ด (เลือก API & Services) แล้วทําซ้ําขั้นตอนที่ 3 และ 4 สําหรับ Gmail API
  7. บนแดชบอร์ด ให้เลือกข้อมูลประจําตัวในบานหน้าต่างนําทางด้านซ้าย แล้วเลือกกําหนดค่าหน้าจอความยินยอม หากระบบขอให้เลือก ประเภทผู้ใช้ ให้เลือก ภายนอก จากนั้นเลือก สร้าง
  8. ใส่ชื่อแอปพลิเคชันของคุณในเขตข้อมูล ชื่อแอปพลิเคชัน (ตัวอย่างเช่น ไคลเอ็นต์สคริปต์) แล้วใส่อีเมลของคุณในเขตข้อมูลที่ต้องการ จากนั้นเลือก บันทึกและดําเนินการต่อ
  9. เลือก เพิ่มหรือนําขอบเขตออก แล้วเลือก .. /auth/drive และ . /auth/gmail.send แล้วเลือก อัปเดต
  10. เลือก บันทึกและดําเนินการต่อ
  11. เลือก เพิ่มผู้ใช้ ใส่อีเมล Google ของคุณ แล้วเลือก เพิ่ม
  12. บน แดชบอร์ด ให้เลือก ข้อมูลประจําตัวใน บานหน้าต่างนําทางด้านซ้าย จากนั้นเลือก สร้างข้อมูลประจําตัว แล้วเลือก ID ไคลเอ็นต์ Oauth
  13. เลือกชนิดแอปพลิเคชันเว็บ ถัดไป ให้ใส่ชื่อ เช่น สคริปต์เว็บแอปในเขตข้อมูลชื่อ จากนั้นเพิ่มhttps://developers.google.com/oauthplaygroundไปยัง URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต สุดท้าย ให้เลือก สร้าง
  14. คัดลอก ID ไคลเอ็นต์และข้อมูลเคร็คไคลเอ็นต์ของคุณเพื่อใช้ในขั้นตอนที่ 18, 19 และ 24 จากนั้นเลือก ตกลง
  15. ไปที่ Google OAuth Playground
  16. เลือกไอคอนการกําหนดค่า OAuth 2.0 (ไอคอนรูปเฟืองที่มุมขวาบน)
  17. เลือกกล่อง ใช้ข้อมูลประจําตัว OAuth ของคุณเอง
  18. วาง ID ไคลเอ็นต์ของคุณลงใน ID ไคลเอ็นต์ OAuth
  19. วางลับไคลเอ็นต์ของคุณลงใน ลับไคลเอ็นต์ OAuth
  20. ใน ป้อนขอบเขตของคุณเอง ให้วาง https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/gmail.send
  21. เลือก API ที่ได้รับอนุญาต และทําตามพร้อมท์เพื่อให้ความยินยอม

หมายเหตุ

เมื่ออนุญาต API ใน Playground หากคุณเห็นกล่องโต้ตอบที่ระบุว่า "แอปนี้ไม่ได้รับการตรวจสอบ" ให้เลือก ขั้นสูง จากนั้นไปที่ [ชื่อแอป] (ไม่ปลอดภัย)

  1. หลังจากที่ API ได้รับอนุญาตแล้ว ให้เลือก รหัสการตรวจสอบ Exchange สําหรับโทเค็น
  2. คัดลอกโทเค็นจาก รีเฟรชโทเค็น เพื่อใช้ในขั้นตอนที่ 24
  3. ในโซลูชัน เช่น การค้นหาโฆษณาที่ไม่ได้รับอนุมัติ ซึ่งเข้าถึงบริการของ Google ให้ตั้งค่าวัตถุ clientId, clientSecret, และ refreshToken เขตข้อมูลของข้อมูลประจําตัวเป็นค่าที่คุณได้รับในขั้นตอนที่ 13 และ 22

ตัวเลือกที่ 3 - รับโทเค็นรีเฟรชโดยใช้สคริปต์ PowerShell

  1. ไปที่คอนโซลนักพัฒนา Google แดชบอร์ด API
  2. เลือก สร้างโครงการ เพื่อสร้างโครงการใหม่ หรือเลือกโครงการที่มีอยู่
    1. ถ้าคุณสร้างโครงการใหม่ ให้ใส่ชื่อโครงการของคุณใน ชื่อโครงการ ตัวอย่างเช่น สคริปต์
    2. เลือก สร้าง
  3. บน แดชบอร์ด ให้เลือก เปิดใช้งาน API และบริการ
  4. ในกล่องค้นหา ให้ป้อนชีตและเลือกGoogle Sheets API จากนั้นเลือก เปิดใช้งาน
  5. กลับไปที่แดชบอร์ด (เลือก API & บริการ) แล้วทําซ้ําขั้นตอนที่ 3 และ 4 สําหรับ Google Drive API
  6. กลับไปที่แดชบอร์ด (เลือก API & Services) แล้วทําซ้ําขั้นตอนที่ 3 และ 4 สําหรับ Gmail API
  7. บนแดชบอร์ด ให้เลือกข้อมูลประจําตัวในบานหน้าต่างนําทางด้านซ้าย แล้วเลือกกําหนดค่าหน้าจอความยินยอม หากระบบขอให้เลือก ประเภทผู้ใช้ ให้เลือก ภายนอก จากนั้นเลือก สร้าง
  8. ใส่ชื่อแอปพลิเคชันของคุณในเขตข้อมูล ชื่อแอปพลิเคชัน (ตัวอย่างเช่น ไคลเอ็นต์สคริปต์) แล้วใส่อีเมลของคุณในเขตข้อมูลที่ต้องการ จากนั้นเลือก บันทึกและดําเนินการต่อ
  9. เลือก เพิ่มหรือนําขอบเขตออก แล้วเลือก .. /auth/drive และ . /auth/gmail.send แล้วเลือก อัปเดต
  10. เลือก บันทึกและดําเนินการต่อ
  11. เลือก เพิ่มผู้ใช้ ใส่อีเมล Google ของคุณ แล้วเลือก เพิ่ม
  12. บน แดชบอร์ด ให้เลือก ข้อมูลประจําตัวใน บานหน้าต่างนําทางด้านซ้าย จากนั้นเลือก สร้างข้อมูลประจําตัว แล้วเลือก ID ไคลเอ็นต์ Oauth
  13. เลือกชนิดแอปพลิเคชัน แอปเดสก์ท็อป ใส่ชื่อ (ตัวอย่างเช่น สคริปต์ไคลเอ็นต์ creds) แล้วเลือก สร้าง
  14. คัดลอก ID ไคลเอ็นต์และข้อมูลเคร็คไคลเอ็นต์ของคุณเพื่อใช้ในขั้นตอนที่ 15 และ 16 จากนั้นเลือก ตกลง
  15. สร้างสคริปต์ PowerShell เพื่อรับความยินยอมจากผู้ใช้และโทเค็นรีเฟรช

การรับโทเค็นการเข้าถึงต้องได้รับความยินยอมจากผู้ใช้ เว้นแต่ว่าคุณจะมีโทเค็นรีเฟรช แต่เนื่องจากสคริปต์ไม่สนับสนุนคอมโพเนนต์ UI คุณจะต้องขอความยินยอมด้วยวิธีอื่น PowerShell นี้มีตัวเลือกสําหรับการรับความยินยอมและโทเค็นรีเฟรช

เปิดแผ่นจดบันทึกหรือตัวแก้ไขที่คุณชื่นชอบ แล้วคัดลอกสคริปต์ PowerShell ไปยังตัวแก้ไข ตั้งค่า $clientId และ $clientSecret ID ไคลเอ็นต์และข้อมูลลับที่คุณได้รับเมื่อลงทะเบียนแอป (ดูขั้นตอนที่ 13)

$clientId = "your-client-id"
$clientSecret = "your-client-secret"

$scopes = "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/gmail.send"

Start-Process "https://accounts.google.com/o/oauth2/v2/auth?client_id=$clientId&scope=$([string]::Join("%20", $scopes))&access_type=offline&response_type=code&redirect_uri=urn:ietf:wg:oauth:2.0:oob"    
 
$code = Read-Host "Please enter the code"
   
$response = Invoke-WebRequest https://www.googleapis.com/oauth2/v4/token -ContentType application/x-www-form-urlencoded -Method POST -Body "client_id=$clientid&client_secret=$clientSecret&redirect_uri=urn:ietf:wg:oauth:2.0:oob&code=$code&grant_type=authorization_code"
  
Write-Output "Refresh token: " ($response.Content | ConvertFrom-Json).refresh_token 

บันทึกไฟล์และตั้งชื่อเป็น GetTokens.ps1 (คุณสามารถตั้งชื่ออะไรก็ได้ที่คุณต้องการ แต่ต้อง .ps1 นามสกุล)

ตอนนี้ ให้เปิดหน้าต่างคอนโซล หากต้องการเปิดหน้าต่างคอนโซลบน Microsoft Windows ให้ป้อนคําสั่งเรียกใช้ของ Windows ต่อไปนี้ (<ปุ่ม> Windows+r):

cmd.exe

ที่พร้อมท์คําสั่ง ให้นําทางไปยังโฟลเดอร์ที่คุณบันทึก GetTokens.ps1 แล้วใส่คําสั่งต่อไปนี้

powershell.exe -File .\GetTokens.ps1

เมื่อสคริปต์ PowerShell ทํางานสําเร็จ จะเริ่มเซสชันของเบราว์เซอร์ที่คุณใส่ข้อมูลประจําตัวของ Google ของคุณ หลังจากให้ความยินยอมแล้ว เว็บเพจจะมีรหัสการให้สิทธิ์ (ดู โปรดคัดลอกรหัสนี้...)

คัดลอกรหัสการให้สิทธิ์และป้อนรหัสในหน้าต่างคอนโซลที่พร้อมท์ จากนั้นสคริปต์ PowerShell จะส่งกลับโทเค็นรีเฟรช คัดลอกโทเค็นรีเฟรช คุณควรปฏิบัติต่อโทเค็นรีเฟรชเหมือนกับที่คุณใช้รหัสผ่าน ถ้ามีคนได้รับ พวกเขาจะสามารถเข้าถึงทรัพยากรของคุณได้

  1. ในโซลูชัน เช่น การค้นหาโฆษณาที่ไม่ได้รับอนุมัติ ซึ่งเข้าถึงบริการของ Google ให้ตั้งค่าวัตถุ clientId, clientSecret, และ refreshToken เขตข้อมูลของข้อมูลประจําตัวเป็นค่าที่คุณได้รับในขั้นตอนที่ 13 และ 14