รหัสข้อผิดพลาด

ข้อผิดพลาดทุกรายการมีรหัสที่คงที่ SDK ใช้รหัสชุดเดียวกัน (Unity ใช้เป็น enum) และมีรหัสเพิ่มอีกเล็กน้อยสำหรับปัญหาที่เกิดขึ้นก่อนคำขอจะถึงเซิร์ฟเวอร์

คอมเมนต์ในโค้ดและชื่อ API ยังคงเป็นภาษาอังกฤษเพื่อให้ตรงกับ SDK

ในหน้านี้

ข้อผิดพลาดจาก API#

รหัสHTTPUnityเกิดเมื่อลองใหม่?
validation400, 422Validationอินพุตไม่ถูกต้อง โดย details.fields จะระบุชื่อฟิลด์ไม่
unauthorized401Unauthorizedคีย์ไม่ถูกต้อง หรือโทเค็นผู้เล่นไม่มี หมดอายุ หรือถูกเพิกถอนไม่
forbidden403Forbiddenโปรเจกต์ถูกระงับ เป็นเอนด์พอยต์สำหรับเซิร์ฟเวอร์เท่านั้น หรือต้องใช้ HTTPSไม่
plan_limit403PlanLimitถึงขีดจำกัดของแพ็กเกจแล้ว (ผู้เล่น รายการ พื้นที่จัดเก็บ…) ไม่มีข้อมูลใดถูกลบไม่
not_found404NotFoundไม่พบเอนด์พอยต์ ลีดเดอร์บอร์ด ผู้เล่น หรือคีย์เซฟไม่
conflict409Conflictดำเนินการไปแล้ว เช่น รับรางวัลไปแล้วในรอบนี้ไม่
revision_mismatch409RevisionMismatchคลาวด์เซฟถูกเปลี่ยนจากอุปกรณ์อื่นไม่
rate_limited429RateLimitedคำขอต่อนาทีมากเกินไป หรือติดคูลดาวน์ของลีดเดอร์บอร์ด ให้รอ Retry-After วินาทีได้
quota_exceeded429QuotaExceededใช้โควตาคำขอรายวันของบัญชีหมดแล้ว โควตาจะรีเซ็ตเวลา 00:00 UTCไม่
server_error500ServerErrorเกิดข้อผิดพลาดบนเซิร์ฟเวอร์ SDK จะลองส่งคำขอที่ปลอดภัยใหม่ให้ได้

ข้อผิดพลาดเฉพาะใน SDK#

รหัสHTTPUnityเกิดเมื่อลองใหม่?
network—Networkติดต่อเซิร์ฟเวอร์ไม่ได้ได้
timeout—Timeoutคำขอใช้เวลานานเกินค่า timeoutได้
not_configured—NotConfiguredBase URL, Project ID หรือคีย์ไคลเอนต์ไม่มีหรือไม่ถูกต้องไม่
not_signed_in—NotSignedInเรียกในนามผู้เล่นก่อนเข้าสู่ระบบ หรือหลังจากเซสชันหมดอายุไม่
signature_invalid—SignatureInvalidรีโมตคอนฟิกไม่ผ่านการตรวจสอบและไม่ถูกนำไปใช้ไม่
parse_error—ParseErrorอ่านการตอบกลับไม่ได้ (มักเกิดจากพร็อกซีหรือหน้าข้อผิดพลาดแบบ HTML)ไม่
link_expired—LinkExpiredหน้าเชื่อมบัญชีหมดอายุแล้ว ให้เริ่มใหม่ไม่
link_cancelled—LinkCancelledโฟลว์การเชื่อมบัญชีถูกยกเลิกไม่

การจัดการข้อผิดพลาด#

แสดง message ให้นักพัฒนาเห็น ไม่ใช่ผู้เล่น และแยกการทำงานตามรหัส ลองใหม่เฉพาะข้อผิดพลาดที่ลองใหม่ได้ และบันทึกรหัสคำขอไว้เพื่อค้นหาคำขอนั้นในหน้าล็อก

C#
var top = await Majacloud.Leaderboards.GetTopAsync("coins", 10);
if (top.Ok)
{
    foreach (var entry in top.Value.Entries)
        Debug.Log($"#{entry.Rank} {entry.PlayerName} {entry.Score}");
}
else if (top.Error.IsRetryable)
{
    // Network, timeout, 5xx or rate limit: try again later
    Debug.Log("Retry in " + top.Error.RetryAfterSeconds + " s");
}
else
{
    Debug.LogWarning(top.Error.Code + ": " + top.Error.Message + " (" + top.Error.RequestId + ")");
}

ค้นหาจากชื่อหน้า หัวข้อ และเนื้อหา

↑↓ เพื่อเลื่อน ↵ เพื่อเปิด Esc เพื่อปิด