การใช้การให้สิทธิ์ OAuth 2.0

YouTube Data API รองรับโปรโตคอล OAuth 2.0 สำหรับการให้สิทธิ์เข้าถึงข้อมูลส่วนตัวของผู้ใช้ รายการด้านล่างอธิบายถึงแนวคิดหลักของ OAuth 2.0 บางส่วน

  • เมื่อผู้ใช้พยายามใช้ฟังก์ชันในแอปพลิเคชันของคุณเป็นครั้งแรก ซึ่งกำหนดให้ผู้ใช้ลงชื่อเข้าใช้ Google Account or YouTube account แอปพลิเคชันของคุณจะเริ่มกระบวนการให้สิทธิ์ OAuth 2.0

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

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

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

สำคัญ: ในการใช้การให้สิทธิ์ OAuth 2.0 คุณจะต้องขอรับข้อมูลเข้าสู่ระบบการให้สิทธิ์ในคอนโซล Google API

ขั้นตอน OAuth 2.0

Google APIs รองรับกรณีการใช้งาน OAuth 2.0 หลายกรณีดังนี้

  • ขั้นตอนเว็บแอปฝั่งเซิร์ฟเวอร์รองรับเว็บแอปพลิเคชันซึ่งจัดเก็บข้อมูลถาวรได้อย่างปลอดภัย
  • ขั้นตอนของเว็บแอป JavaScript รองรับแอปพลิเคชัน JavaScript ที่ทำงานในเบราว์เซอร์
  • ขั้นตอนของแอปบนอุปกรณ์เคลื่อนที่และเดสก์ท็อปรองรับแอปพลิเคชันที่ติดตั้งในอุปกรณ์ เช่น โทรศัพท์หรือคอมพิวเตอร์
  • ขั้นตอนสำหรับทีวีและอุปกรณ์อินพุตที่จำกัดรองรับอุปกรณ์ที่มีความสามารถในการป้อนข้อมูลที่จำกัด เช่น คอนโซลเกมและกล้องวิดีโอ
  • ขั้นตอน OAuth 2.0 สำหรับโฟลว์บัญชีบริการรองรับการโต้ตอบแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์ที่ไม่เข้าถึงข้อมูลผู้ใช้ แต่ YouTube Data API ไม่รองรับขั้นตอนนี้ Since there is no way to link a Service Account to a YouTube account, attempts to authorize requests with this flow will generate a NoLinkedYouTubeAccount error.