การแก้ปัญหา
ปัญหาที่พบบ่อยที่สุดและวิธีแก้ไข
คอมเมนต์ในโค้ดและชื่อ API ยังคงเป็นภาษาอังกฤษเพื่อให้ตรงกับ SDK
การเชื่อมต่อ#
not_configured / NotConfigured
Unity: เปิด Tools ▸ Majacloud ▸ Setup แล้วบันทึก ไฟล์ asset ต้องอยู่ที่ Assets/Resources/MajacloudSettings.asset ส่วน Godot: กรอกค่าใน Project Settings ▸ Majacloud และเว็บ: ส่ง baseUrl, projectId และ clientKey
https_required (HTTP 426)
เฉพาะ localhost เท่านั้นที่ใช้ http:// ได้ ให้ใช้ HTTPS หรือเฉพาะระหว่างพัฒนา ให้ตั้ง ALLOW_INSECURE_HTTP ใน config.local.php
ทุกคำขอล้มเหลวในเบราว์เซอร์หรือบน WebGL
ให้บริการเกมผ่าน HTTPS ด้วย เพราะเบราว์เซอร์จะบล็อกการเรียก http:// จากหน้า https:// และ API ส่งเฮดเดอร์ CORS ให้อยู่แล้ว
ค้นหาคำขอที่ล้มเหลว
ทุกข้อผิดพลาดมีรหัสคำขอ ค้นหารหัสนี้ในหน้าล็อกของโปรเจกต์
การเข้าสู่ระบบ#
ได้ unauthorized ทุกครั้งที่เรียก
ตรวจสอบ Project ID และคีย์ไคลเอนต์ในหน้าคีย์ API หากคุณสร้างคีย์ไคลเอนต์ใหม่ บิลด์เก่าจะใช้งานไม่ได้
ผู้เล่นถูกออกจากระบบโดยไม่คาดคิด
เซสชันที่ไม่ได้ใช้งาน 30 วันจะหมดอายุ หากเกมสองชุดใช้เซสชันเดียวกันและต่างก็รีเฟรช ระบบป้องกันการใช้ซ้ำจะออกจากระบบเซสชันนั้น ให้ SDK เพียงอินสแตนซ์เดียวเป็นเจ้าของเซสชัน
หน้าเชื่อมบัญชีไม่เปิดขึ้นมา
เบราว์เซอร์จะบล็อกแท็บที่ไม่ได้เปิดจากการคลิก ให้เริ่มการเชื่อมบัญชีจากตัวจัดการการคลิกปุ่ม
รีโมตคอนฟิก#
signature_invalid / SignatureInvalid
คีย์สาธารณะที่เก็บไว้ไม่ตรงกับเซิร์ฟเวอร์ มักเกิดหลังย้ายไปเซิร์ฟเวอร์ใหม่หรือ storage/keys/ สูญหาย ให้เรียก Test connection อีกครั้ง (หรืออัปเดต configPublicKey) แล้วออกอัปเดตเกม
การเปลี่ยนคอนฟิกไม่แสดงผล
SDK ดึงคอนฟิกตอนเริ่มเกม ให้เรียก fetch อีกครั้ง (เช่น เมื่อกลับไปที่เมนู) เพื่อรับการเปลี่ยนแปลงระหว่างเซสชัน
ขีดจำกัด#
plan_limit
ถึงขีดจำกัดของแพ็กเกจแล้ว ไม่มีข้อมูลใดถูกลบ ให้อัปเกรดหรือลบรายการที่ไม่ใช้ในแดชบอร์ด
rate_limited / quota_exceeded
รอตามจำนวนวินาทีใน Retry-After หลีกเลี่ยงการดึงข้อมูลใน Update() หรือในลูปของเกม ให้แคชผลลัพธ์ไว้แทน
Godot และเว็บ#
Godot: Identifier "Majacloud" not declared
เปิดใช้ปลั๊กอินที่ Project Settings ▸ Plugins ซึ่งจะเพิ่ม autoload ให้ และตรวจสอบว่าโฟลเดอร์อยู่ที่ res://addons/majacloud ตรงทุกตัวอักษร
Godot: TLS handshake failed
ใบรับรอง HTTPS ของเซิร์ฟเวอร์ไม่น่าเชื่อถือ (มักเป็นใบรับรองแบบ self-signed) ให้ใช้ใบรับรองจากผู้ออกใบรับรองสาธารณะ เช่น Let's Encrypt
เว็บ: "Web Crypto is unavailable"
หน้าเว็บให้บริการผ่าน HTTP ธรรมดาจากโฮสต์อื่น ให้บริการผ่าน HTTPS แทน (ระหว่างพัฒนาใช้ localhost ได้)