• gpt
  • oauth
  • openai

รับรองความถูกต้องของผู้ใช้ในการกระทำของ GPT: สร้างผู้ช่วยตารางเวลาส่วนตัว

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

Gao
Gao
Founder

GPTs นั้นยอดเยี่ยมในการปรับแต่งประสบการณ์ ChatGPT สำหรับการใช้งานเฉพาะ สิ่งที่ดียิ่งขึ้นคือช่วยให้คุณสามารถโต้ตอบกับบริการของคุณได้โดยตรงโดยใช้ actions

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

GPT สุดท้ายจะมีลักษณะดังนี้:

ด้านซ้ายคือการโต้ตอบของผู้ใช้กับ GPT; ด้านขวาคือเว็บแอปที่แสดงตารางเวลาของผู้ใช้ มีความเป็นไปได้มากมายด้วยวิธีนี้ เช่น:

  • สร้างผู้ช่วยส่วนตัวที่ช่วยให้ผู้ใช้เข้าใจอีเมลและข่าวสาร
  • สร้าง GPT เพื่อเรียกดูและจองเที่ยวบินโดยไม่ต้องออกจากการสนทนา

ผลลัพธ์และทรัพยากรของบทแนะนำนี้:

  • GPT สุดท้ายมีให้ใช้งานบน ChatGPT.
  • เว็บแอปสาธิตมีให้ใช้งานบน gpt-agenda.fordemo.app.
  • โค้ดทั้งหมดมีให้ใช้งานบน GitHub.

ข้อกำหนดเบื้องต้น

  • ณ ขณะนี้ GPTs มีให้บริการเฉพาะผู้ใช้ ChatGPT Plus และสูงกว่าหรือไม่
  • ใช้ Logto Cloud tenant ลงทะเบียน ได้ฟรีหากคุณยังไม่มี
  • โดเมนที่คุณสามารถควบคุมได้ ซึ่งจะใช้สำหรับทั้ง GPT และ Logto Cloud
  • เว็บแอปที่สามารถแสดง REST APIs ในนามของคุณได้ ในบทแนะนำนี้ เราจะใช้แอปตารางเวลาที่สร้างไว้ล่วงหน้า

สร้างและกำหนดค่า GPT

สร้าง GPT

  1. เปิด ChatGPT ทางด้านซ้าย คลิกปุ่ม สำรวจ GPTs จากนั้นคลิกปุ่ม สร้าง ที่มุมขวาบน
  2. ในหน้า GPT ใหม่ ป้อนชื่อและคำอธิบายสำหรับ GPT ของคุณ ตัวอย่างเช่น ผู้ช่วยตารางเวลา และ จัดการตารางเวลาของคุณได้โดยตรงในบทสนทนา
  3. คุณสามารถอัปโหลดโลโก้สำหรับ GPT ของคุณได้ หรือใช้ DALL-E เพื่อสร้างโลโก้ให้คุณโดยคลิกที่ไอคอนบวก

สร้างการกระทำ

คลิกปุ่ม สร้างการกระทำใหม่ ที่ด้านล่าง ในหน้าใหม่ มีสามส่วน:

  • การรับรองความถูกต้อง: ส่วนนี้ช่วยให้คุณสามารถกำหนดค่าการรับรองความถูกต้องของผู้ใช้ที่ใช้กับการดำเนินการของคุณ เราทิ้งไว้เป็น ไม่มี ก่อน
  • สคีมา: สคีมา OpenAPI ในรูปแบบ YAML ที่กำหนด REST APIs สำหรับการดำเนินการของคุณ ยิ่งสคีมามีรายละเอียดมากเท่าใด GPT ก็จะยิ่งเข้าใจเจตนาของผู้ใช้ได้ดีขึ้น
  • นโยบายความเป็นส่วนตัว: URL นโยบายความเป็นส่วนตัวสำหรับการกระทำของคุณ

ในบทแนะนำนี้ เรามีแอปตารางเวลาที่สร้างไว้ล่วงหน้า ใช้ REST APIs เพื่อจัดการตารางเวลาของผู้ใช้ คุณสามารถค้นหาสคีมา OpenAPI ใน GitHub repo.

เมื่อลอกสคีมาลงไปแล้ว GPT จะรับรู้ endpoints ที่คุณใช้และสร้างตารางให้คุณโดยอัตโนมัติ คุณสามารถคลิกปุ่ม ทดสอบ เพื่อลอง endpoints ได้

Add actions

GPT จะถามหาอนุญาตของคุณในการดำเนินการ API คลิกที่ปุ่ม อนุญาต หรือ อนุญาตเสมอ เพื่อดำเนินการต่อ

Test actions

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

Test actions error


API call without authentication

กำหนดค่าโดเมนแบบปรับแต่งใน Logto Cloud

ChatGPT ต้องการให้ทั้งการดำเนินการและ endpoints การรับรองความถูกต้องอยู่ในโดเมนเดียวกัน root domain. ตัวอย่างเช่น, ถ้า endpoint การดำเนินการของคุณเป็น https://api.example.com/, endpoint การรับรองความถูกต้องต้องเป็นอย่างบางอย่างเช่น https://auth.example.com/.

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

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

Custom domain

สร้างแอปใน Logto Cloud

เพื่อดำเนินการ OAuth ขึ้น, เราจำเป็นต้องสร้างแอปใน Logto Cloud หลังจากที่คุณเข้าสู่ระบบ, คลิกที่แท็บ แอปพลิเคชัน ทางด้านซ้าย จากนั้นคลิกที่ปุ่ม สร้างแอปพลิเคชัน ที่มุมขวาบน

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

หลังจากสร้างแอปเสร็จแล้ว, ไปที่บัตร ENDPOINTS & CREDENTIALS (คุณอาจต้องเลื่อนลงเล็กน้อย) คลิก แสดงรายละเอียด endpoint เพื่อขยายข้อมูล

Logto app config

กำหนดค่าการดำเนินการ

ตอนนี้, นำทางกลับไปที่หน้าการกระทำ GPT, คลิกที่ส่วน การรับรองความถูกต้อง จากนั้นเลือก OAuth รายการข้อมูลในรูปแบบตรงกับข้อมูลใน Logto Cloud ดังนี้:

  • ไอดีของผู้ใช้: ไอดีแอปพลิเคชัน ใน Logto Cloud
  • ความลับของผู้ใช้: ความลับของแอป ใน Logto Cloud
  • URL การอนุญาต: Endpoint การอนุญาต ใน Logto Cloud
  • URL โทเคน: Endpoint โทเคน ใน Logto Cloud

สำหรับช่อง ขอบเขต ให้พิมพ์ openid offline_access; สำหรับฟิล์ด "วิธีการแลกเปลี่ยนโทเคน" ให้เก็บค่าตั้งต้นไว้ (ร้องขอ POST)

GPT action authentication config

สุดท้าย, คลิกที่ปุ่ม บันทึก ที่ด้านล่าง

อัปเดตการกำหนดค่าแอป Logto

ย้อนกลับไปที่หน้าการกำหนดค่า GPT ขณะนี้คุณจะเห็นฟิลด์ Callback URL ใต้ส่วน การดำเนินการ

คัดลอก URL นั้นแล้วไปยังหน้าของแอป Logto Cloud วาง URL ในส่วน Redirect URIs

Logto app redirect URIs

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

จากนั้นคลิกที่ปุ่ม บันทึก ที่ด้านล่าง

จุดตรวจสอบ: ทดสอบระบบ OAuth

ตอนนี้เราพร้อมทุกอย่างแล้ว, ทดสอบระบบ OAuth เพื่อให้แน่ใจว่าทุกอย่างทำงานอย่างที่คาดหวัง กลับไปที่หน้าการกำหนดค่า GPT คลิกที่การกระทำที่เราสร้างขึ้น จากนั้นคลิกปุ่ม ทดสอบ สำหรับ endpoint listItems (อันแรก)

ส่วนการแสดงตัวอย่างจะให้คุณลงชื่อเข้าใช้ คลิกปุ่ม ลงชื่อเข้าใช้ด้วย [ชื่อการกระทำของคุณ] จากนั้นทำกระบวนการ OAuth ให้เสร็จสิ้น

Test sign-in prompt

คุณสามารถปรับแต่งประสบการณ์ลงชื่อเข้าใช้ เช่น การสร้างแบรนด์และวิธีการลงชื่อเข้าใช้ใน Logto Cloud สำหรับข้อมูลเพิ่มเติม โปรดอ้างอิงที่ 🎨 ปรับแต่งประสบการณ์ลงชื่อเข้าใช้

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

Test API success

อย่างน่าทึ่ง, เนื่องจากสคีมา OpenAPI ของเรามีรายละเอียดเพียงพอ GPT สามารถทำการโทร API โดยไม่มีการกำหนดค่าเพิ่มเติมตัวอย่าง, ถ้าคุณคลิกปุ่ม ทดสอบ สำหรับ endpoint createItems, คุณจะเห็นว่า GPT กำลังสร้างร่างคำร้องขอสำหรับคุณ (หรือขอให้คุณระบุข้อมูลที่ขาดหายไป ขึ้นอยู่กับอารมณ์ของมัน).

Test API create

ตรวจสอบความถูกต้องของโทเคนการเข้าถึง

ด้วยระบบ OAuth ทำงาน, เราสามารถตรวจสอบความถูกต้องของโทเคนการเข้าถึงในบริการแบ็คเอนด์เพื่อให้แน่ใจว่าการร้องขอมาจากผู้ใช้ที่ได้รับการตรวจสอบแล้ว เพราะ Logto เป็นผู้ให้บริการ OIDC, คุณสามารถใช้ Userinfo endpoint เพื่อตรวจสอบโทเคนการเข้าถึงได้. Endpoint นั้นสามารถพบได้ในหน้าของแอป Logto Cloud.

เพียงแค่ส่งคำขอ GET ไปยัง endpoint ด้วยโทเคนการเข้าถึงอยู่ในส่วนหัวของ Authorization. หากโทเคนการเข้าถึงมีความถูกต้อง, endpoint จะคืนข้อมูลของผู้ใช้ในร่างของการตอบกลับ. นี่คือตัวอย่างที่ใช้ Node.js:

คุณสามารถหาของทั้งหมดใน GitHub repo.

โบนัส: การซิงค์แบบเรียลไทม์กับแอปหลัก

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

สรุป

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