การให้สิทธิ์ Tag Manager API

เอกสารนี้จะอธิบายวิธีที่แอปพลิเคชันได้รับสิทธิ์ในการส่งคำขอไปยัง Tag Manager API

การให้สิทธิ์คำขอ

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

ทุกคำขอที่แอปพลิเคชันส่งไปยัง Tag Manager API ต้องมีโทเค็นการให้สิทธิ์ โทเค็นดังกล่าวจะระบุตัวตนแอปพลิเคชันของคุณให้ Google ทราบด้วย

เกี่ยวกับโปรโตคอลการให้สิทธิ์

แอปพลิเคชันต้องใช้ OAuth 2.0 เพื่อให้สิทธิ์คำขอ ระบบไม่รองรับโปรโตคอลการให้สิทธิ์อื่นๆ หากแอปพลิเคชันใช้ลงชื่อเข้าใช้ด้วย Google ระบบจะจัดการการให้สิทธิ์บางส่วนแก่คุณ

การให้สิทธิ์คำขอด้วย OAuth 2.0

คำขอทั้งหมดที่ส่งไปยัง Tag Manager API จะต้องได้รับอนุญาตจากผู้ใช้ที่ตรวจสอบสิทธิ์แล้ว

รายละเอียดของกระบวนการให้สิทธิ์หรือ "ขั้นตอน" ของ OAuth 2.0 จะแตกต่างกันไปโดยขึ้นอยู่กับประเภทของแอปพลิเคชันที่คุณเขียน แอปพลิเคชันทุกประเภทจะใช้กระบวนการทั่วไปต่อไปนี้

  1. เมื่อสร้างแอปพลิเคชัน คุณจะลงทะเบียนแอปได้โดยใช้คอนโซล Google API จากนั้น Google จะให้ข้อมูลที่คุณต้องใช้ในภายหลัง เช่น รหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์
  2. เปิดใช้งาน Tag Manager API ในคอนโซล Google API (หากไม่เห็น API ดังกล่าวในคอนโซล API ให้ข้ามขั้นตอนนี้ไป)
  3. เมื่อแอปพลิเคชันต้องการเข้าถึงข้อมูลผู้ใช้ แอปจะขอขอบเขตการเข้าถึงที่จำเป็นจาก Google
  4. Google จะแสดงหน้าจอขอคำยินยอมแก่ผู้ใช้เพื่อขอให้ผู้ใช้ให้สิทธิ์แอปพลิเคชันของคุณในการขอข้อมูลบางอย่างของผู้ใช้
  5. หากผู้ใช้อนุมัติ Google จะให้โทเค็นเพื่อการเข้าถึงที่มีอายุชั่วคราวแก่แอปพลิเคชันของคุณ
  6. แอปพลิเคชันขอข้อมูลผู้ใช้โดยแนบโทเค็นเพื่อการเข้าถึงไปกับคำขอ
  7. หาก Google ตัดสินว่าคำขอและโทเค็นของคุณถูกต้อง ระบบจะแสดงข้อมูลที่ขอ

บางกระบวนการจะมีขั้นตอนเพิ่มเติม เช่น การใช้โทเค็นการรีเฟรชเพื่อขอโทเค็นเพื่อการเข้าถึงใหม่ ดูข้อมูลอย่างละเอียดเกี่ยวกับกระบวนการของแอปพลิเคชันประเภทต่างๆ ได้ที่เอกสารประกอบเกี่ยวกับ OAuth 2.0 ของ Google

ข้อมูลขอบเขตของ OAuth 2.0 สําหรับ Tag Manager API มีดังนี้

ขอบเขต ความหมาย
https://www.googleapis.com/auth/tagmanager.readonly ดูคอนเทนเนอร์ Google Tag Manager
https://www.googleapis.com/auth/tagmanager.edit.containers จัดการคอนเทนเนอร์ Google Tag Manager
https://www.googleapis.com/auth/tagmanager.delete.containers ลบคอนเทนเนอร์ Google Tag Manager
https://www.googleapis.com/auth/tagmanager.edit.containerversions จัดการเวอร์ชันคอนเทนเนอร์ Google Tag Manager
https://www.googleapis.com/auth/tagmanager.publish เผยแพร่คอนเทนเนอร์ Google Tag Manager
https://www.googleapis.com/auth/tagmanager.manage.users จัดการสิทธิ์ของผู้ใช้สำหรับข้อมูล Google Tag Manager
https://www.googleapis.com/auth/tagmanager.manage.accounts จัดการบัญชี Google Tag Manager

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

เริ่มต้นใช้งาน

หากต้องการเริ่มต้นใช้งาน Tag Manager API ก่อนอื่นคุณต้องใช้เครื่องมือตั้งค่า ซึ่งจะแนะนำขั้นตอนการสร้างโปรเจ็กต์ในคอนโซล Google API การเปิดใช้ API และสร้างข้อมูลเข้าสู่ระบบ

หากต้องการตั้งค่าบัญชีบริการใหม่ ให้ทำดังนี้

  1. คลิกสร้างข้อมูลเข้าสู่ระบบ > คีย์บัญชีบริการ
  2. เลือกว่าจะดาวน์โหลดคีย์สาธารณะ/ส่วนตัวของบัญชีบริการเป็นไฟล์ P12 มาตรฐาน หรือเป็นไฟล์ JSON ที่โหลดโดยไลบรารีของไคลเอ็นต์ Google API ได้

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

ขั้นตอนทั่วไปของ OAuth 2.0

หลักเกณฑ์ต่อไปนี้จะสรุปกรณีการใช้งานทั่วไปสำหรับกระบวนการ OAuth 2.0 ที่เฉพาะเจาะจง

เว็บเซิร์ฟเวอร์

ขั้นตอนนี้เหมาะสำหรับการเข้าถึงอัตโนมัติ/ออฟไลน์/ตามกำหนดเวลาในบัญชี Google Tag Manager ของผู้ใช้

ตัวอย่างเช่น
  • การอัปเดตข้อมูล Tag Manager โดยอัตโนมัติจากเซิร์ฟเวอร์

ฝั่งไคลเอ็นต์

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

ตัวอย่างเช่น
  • เครื่องมือกำหนดค่าตามเบราว์เซอร์ที่ปรับแต่ง

แอปที่ติดตั้ง

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

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

บัญชีบริการ

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

การแก้ปัญหา

หาก access_token หมดอายุหรือคุณใช้ขอบเขตที่ไม่ถูกต้องสำหรับการเรียก API หนึ่งๆ คุณจะได้รับรหัสสถานะ 401 ในการตอบกลับ

หากผู้ใช้ที่ได้รับอนุญาตไม่มีสิทธิ์เข้าถึงบัญชีหรือคอนเทนเนอร์ Google Tag Manager คุณจะได้รับรหัสสถานะ 403 ในการตอบกลับ ตรวจสอบว่าได้รับสิทธิ์จากผู้ใช้ที่ถูกต้องและได้รับสิทธิ์ในการเข้าถึงบัญชีหรือคอนเทนเนอร์ Tag Manager

สนามเด็กเล่น OAuth 2.0

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

การให้สิทธิ์ไม่ถูกต้อง

หากคุณได้รับการตอบกลับที่เป็นข้อผิดพลาด invalid_grant เมื่อพยายามใช้โทเค็นการรีเฟรช ข้อผิดพลาดนี้อาจเกิดจากสาเหตุใดสาเหตุหนึ่งหรือทั้ง 2 อย่างต่อไปนี้

  1. นาฬิกาของเซิร์ฟเวอร์ไม่ซิงค์กับ NTP
  2. คุณใช้โทเค็นการรีเฟรชเกินขีดจำกัดแล้ว
    แอปพลิเคชันสามารถขอโทเค็นการรีเฟรชหลายรายการเพื่อเข้าถึงบัญชี Google Tag Manager บัญชีเดียว เช่น วิธีนี้จะเป็นประโยชน์ในกรณีที่ผู้ใช้ต้องการติดตั้งแอปพลิเคชันหนึ่งบนเครื่องหลายเครื่องและเข้าถึงบัญชี Google Tag Manager เดียวกัน ในกรณีนี้ คุณต้องมีโทเค็นการรีเฟรช 2 รายการ โดยใช้ 1 รายการต่อการติดตั้ง เมื่อจำนวนโทเค็นการรีเฟรชเกินขีดจำกัด โทเค็นที่เก่ากว่าจะใช้งานไม่ได้ หากแอปพลิเคชันพยายามใช้โทเค็นการรีเฟรชที่ใช้งานไม่ได้ ระบบจะแสดงการตอบสนองข้อผิดพลาด invalid_grant ชุดค่าผสม Client-ID/บัญชีที่ไม่ซ้ำกันแต่ละชุดมีโทเค็นการรีเฟรชได้สูงสุด 25 รายการ (โปรดทราบว่าขีดจำกัดนี้อาจมีการเปลี่ยนแปลง) หากแอปพลิเคชันยังคงขอโทเค็นการรีเฟรชสำหรับชุดค่าผสม Client-ID/บัญชีเดียวกัน เมื่อออกโทเค็นรายการที่ 26 แล้ว โทเค็นการรีเฟรชครั้งที่ 1 ที่ออกจะไม่สามารถใช้ได้ โทเค็นการรีเฟรชที่ขอครั้งที่ 27 จะทำให้โทเค็นที่ออกครั้งที่ 2 ใช้งานไม่ได้ เป็นต้น