Developer zone (สร้างแอป)
สร้างแอป ตั้งค่า Auth และเลือก Instance ที่ให้แอปเรียก API ผ่านหน้าจอ
Developer zone คืออะไร
เมนู Developer (แถบด้านบน) ให้คุณสร้าง แอป (Application) เพื่อให้เว็บไซต์หรือโปรแกรมของคุณคุยกับระบบนี้เองได้ แอปหนึ่งแอปทำได้สองอย่างที่แยกจากกัน:
| ส่วน | ใช้ทำอะไร | ต้องเลือก Instance ไหม |
|---|---|---|
| Auth | ให้ผู้เล่นยืนยันตัวตนด้วยบัญชี Minecraft (Sign in with Minecraft) เหมือนปุ่ม Login with Discord | ไม่ต้อง |
| Instance | เรียก API เพื่อดู เพิ่ม หรือลบผู้เล่นของ Instance | ต้อง เลือกเฉพาะ Instance ที่คุณดูแลเอง |
หน้านี้อธิบายการใช้งานหน้าจอ ส่วนรายละเอียดการเรียก API และรูปแบบข้อมูลทั้งหมดอยู่ในหมวด นักพัฒนา เริ่มที่ ภาพรวมและแนวคิด API
ใครสร้างแอปได้
- ทุกบัญชีที่ผ่านการอนุมัติแล้ว (บัญชีที่ยังรออนุมัติเข้าสู่ระบบไม่ได้ ดู บัญชีของฉัน)
- คนละไม่เกิน 20 แอป
- เห็นและแก้ไขได้เฉพาะแอปของตัวเอง แม้เป็นผู้ดูแลระบบก็ไม่เห็นแอปของคนอื่นในหน้านี้
สร้างแอป
- 1
กด สร้างแอป ในหน้า Developer
- 2
กรอกข้อมูลทั่วไป
ช่อง ข้อกำหนด ชื่อแอป จำเป็น 2-50 ตัวอักษร ผู้เล่นเห็นชื่อนี้ในหน้ายืนยันตัวตน คำอธิบาย ไม่บังคับ ไม่เกิน 200 ตัวอักษร โลโก้ ไม่บังคับ ใส่ลิงก์ https://หรือกดไอคอนอัปโหลดเพื่อเลือกรูปจากเครื่อง (ไม่เกิน 5MB เก็บที่ CDN เดียวกับไอคอน Instance) - 3
กดสร้างแอป แล้วเก็บ client_secret
ระบบแสดง
client_secretครั้งเดียว ในหน้าต่างที่ขึ้นมา ปิดแล้วดูอีกไม่ได้ (ระบบเก็บแค่ค่า hash) คัดลอกไปเก็บในที่ปลอดภัยฝั่ง server ของคุณทันที
Credentials
| ค่า | คืออะไร | ความลับไหม |
|---|---|---|
client_id | รหัสประจำแอป ใช้ในลิงก์ที่ส่งผู้เล่นมายืนยันตัวตน และเป็น username ของการยืนยันตัวตนเมื่อเรียก API | ไม่ลับ (อยู่ในลิงก์ที่ผู้เล่นเห็น) |
client_secret | ขึ้นต้นด้วย dmsapp_ ใช้เป็นรหัสผ่านของแอปเมื่อเรียก API | ลับ |
- หน้าแอปแสดง secret ปัจจุบันแบบปิดบังโดยโชว์ 4 ตัวท้าย เพื่อให้รู้ว่ากำลังใช้อันไหนอยู่
- ปุ่ม สร้างใหม่ ออก secret ใหม่และทำให้อันเดิมใช้ไม่ได้ทันที ที่ที่ใช้อยู่ต้องเปลี่ยนเป็นอันใหม่
- อย่าใส่ secret ในโค้ดที่ส่งให้เบราว์เซอร์หรือแอปมือถือ ใช้ฝั่ง server เท่านั้น ถ้าหลุดให้กดสร้างใหม่ทันที
ส่วน Auth
กำหนดว่าผลการยืนยันตัวตนของผู้เล่นจะไปถึงแอปของคุณทางไหน:
| โหมด | การทำงาน | ต้องตั้งค่า | เหมาะกับ |
|---|---|---|---|
| Redirect | เบราว์เซอร์ของผู้เล่นถูกส่งกลับไปที่เว็บของคุณพร้อม code แล้ว server ของคุณนำ code ไปแลกเป็นข้อมูลผู้เล่น | Redirect URIs (บรรทัดละหนึ่งที่อยู่ ไม่เกิน 10 ที่อยู่ ใช้ https:// หรือ http://localhost ไม่มี #fragment) | เว็บที่ให้ผู้เล่นล็อกอิน |
| Webhook | server ของเรายิง POST ที่เซ็นกำกับแล้วไปที่ URL ของคุณ ผู้เล่นไม่ถูกส่งต่อไปไหน | Webhook URL (https:// เท่านั้น และต้องชี้ไปที่อยู่สาธารณะ) | บอทหรือระบบหลังบ้าน |
- Scopes ที่แอปขอได้ตอนนี้มีอย่างเดียวคือ
identify(ชื่อผู้เล่นและ UUID ของบัญชี Minecraft) แสดงเป็นช่องติ๊กที่เลือกไว้แล้ว - Redirect URI ต้องตรงตัวกับที่ลงทะเบียนไว้ทุกตัวอักษร (รวมถึง / ท้ายสุดและ query) ที่อยู่อื่นจะถูกปฏิเสธ
- หน้าแอปมีลิงก์ตัวอย่าง
/authorize?client_id=…ให้คัดลอกไปใช้ ส่วนการต่อยอดในโค้ดอ่านที่ Sign in with Minecraft
ผู้เล่นเห็นอะไร
ผู้เล่นเห็นหน้าขอสิทธิ์ที่มีชื่อ โลโก้ ข้อมูลที่จะแชร์ (ชื่อและ UUID) และโดเมนที่จะถูกส่งกลับ กดดำเนินการต่อแล้ว Launcher เปิดขึ้นและให้กรอกรหัส 4 ตัวที่หน้าเว็บแสดง เพื่อยืนยันว่าคนที่อนุญาตใน Launcher คือคนเดียวกับที่เปิดหน้านั้น (กรอกผิดครบ 5 ครั้ง คำขอถูกยกเลิก) หน้านี้ไม่แสดงชื่อเจ้าของแอป และแอปไม่เห็นรหัสผ่านหรือบัญชี Microsoft ของผู้เล่น
ส่วน Instance
เลือก Instance ที่คุณเป็นสมาชิกดูแล (ผู้ดูแลระบบเลือกได้ทุก Instance) แล้วเลือกสิทธิ์ที่ให้แอปมีต่อ Instance นั้น ไม่ต้องรอใครอนุมัติ:
| สิทธิ์ | แอปทำอะไรได้ |
|---|---|
players:read | ดูรายชื่อผู้เล่นของ Instance |
players:write | เพิ่มและลบผู้เล่นของ Instance |
- ติ๊กหรือเอาติ๊กสิทธิ์ที่แถว Instance มีผลทันที ต้องเหลืออย่างน้อยหนึ่งสิทธิ์ ถ้าไม่ต้องการแล้วให้กดถังขยะถอด Instance ออก
- Instance ที่ไม่ได้เลือกให้ แอปเรียกไม่ได้เลย (ได้ผลเหมือน Instance ไม่มีอยู่จริง)
- ผู้เล่นที่แอปเพิ่มจะมีที่มาเป็น
Application: ชื่อแอปในตารางผู้เล่น ดู จัดการผู้เล่น
ลบแอป
ส่วน Danger zone ลบแอปถาวร client_id และ secret ใช้ไม่ได้อีก การเชื่อมกับ Instance ทั้งหมดถูกลบ ผู้เล่นที่แอปเคยเพิ่มไว้แล้วยังอยู่ใน Instance ตามเดิม (ไม่ถูกลบตามแอป)

