ข้ามไปที่เนื้อหา

Private api

นี่คือ API ที่ใช้เมื่อทำการจับคู่แบบเดี่ยวระหว่างการเล่นเกม สำหรับการจับคู่แบบกลุ่ม กรุณาใช้ Group API

การจับคู่คำขอ

นี่เรียกใช้เมื่อเริ่มคำขอการแข่งขัน การแข่งขันที่ตรงกับ matchId จะต้องถูกสร้างล่วงหน้าในคอนโซล Hive.

URL ที่ร้องขอ

ลิงก์สด https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players
ลิงก์แซนด์บ็อกซ์ https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players
วิธีการ HTTP POST
ประเภทเนื้อหา application/json

พารามิเตอร์หัวเรื่อง

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) string Y

พารามิเตอร์เส้นทาง

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex รหัสโปรเจกต์ที่สามารถพบได้ในศูนย์แอป Hive console int ใช่
matchId รหัสสำหรับแต่ละแมตช์ที่สร้างขึ้นใน Hive console int ใช่

เนื้อหาคำขอ

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
playerId รหัสบัญชี long ใช่
point นี่คือคะแนนที่จะใช้ในการจับคู่ ช่วงค่าที่ป้อนคือ 0 ~ 999,999,999 หากไม่ป้อน จะถูกประมวลผลเป็น 0. integer ไม่
extraData ข้อมูลบัญชีเพิ่มเติม (ชื่อเล่น, ระดับ, ประเทศ, ฯลฯ) สามารถป้อนได้สูงสุด 256 ตัวอักษร จะรวมอยู่ในผลลัพธ์การจับคู่ string ไม่

การตอบสนอง

ชื่อฟิลด์ คำอธิบาย
playerId รหัสบัญชี
matchInfo ข้อมูลที่ร้องขอ
  • gameIndex: ค่าของ gameIndex
  • matchId: ค่าของ matchId
requestingStatus ข้อมูลสถานะการร้องขอ
  • requested: การร้องขอแมตช์สำเร็จ
  • notRequested: ไม่มีการร้องขอแมตช์ หรือแมตช์ได้เสร็จสิ้นแล้วและไม่มีแมตช์ที่กำลังดำเนินการ
requestingInfo ข้อมูลการร้องขอ
  • requestTimeUtc: เวลาที่ร้องขออิงตาม UTC+0
  • point: point ที่ป้อนในขณะทำการร้องขอ
  • extraData: extraData ที่ป้อนในขณะทำการร้องขอ
matchingInfo ข้อมูลความก้าวหน้าการจับคู่ (status)
  • matchingInProgress: การจับคู่กำลังดำเนินการ
  • timeout: การจับคู่ไม่เกิดขึ้นภายในเวลาที่กำหนด
  • matched: การจับคู่เสร็จสิ้น

ตัวอย่างคำขอ

curl --location 'https://sandbox-api-match.withhive.com/gameindexes/1/matchmakings/1/request' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a' \
--data '{
   "playerId":100,
   "point": 1000
}'

ตัวอย่างการตอบกลับ

{
   "playerId": 100,
   "matchInfo": {
       "gameIndex": 1,
       "matchId": 1
   },
   "requestingStatus": "requested",
   "requestingInfo": {
       "requestTimeUtc": "2024-06-05T05:09:28.72",
       "point": 1000
   },
   "matchingInfo": {
       "status": "matchingInProgress"
   }
}

ตรวจสอบสถานะการจับคู่

กำลังตรวจสอบสถานะการจับคู่ที่ร้องขอ

URL ที่ร้องขอ

URL สด https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players
URL แซนด์บ็อกซ์ https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players
วิธีการ HTTP GET

พารามิเตอร์หัวเรื่อง

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) string Y

พารามิเตอร์เส้นทาง

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex รหัสโปรเจกต์ที่สามารถตรวจสอบได้ในศูนย์แอปของ Hive int ใช่
matchId รหัสสำหรับแต่ละแมตช์ที่สร้างขึ้นใน Hive console int ใช่

พารามิเตอร์การค้นหา

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
id รหัสผู้ใช้ (`playerId`) long Y

การตอบกลับ

ชื่อฟิลด์ คำอธิบาย
playerId รหัสบัญชี
matchInfo ข้อมูลที่ร้องขอ
  • gameIndex: ค่าของ gameIndex
  • matchId: ค่าของ matchId
requestingStatus ข้อมูลสถานะการร้องขอ
  • requested: การร้องขอการแข่งขันถูกทำสำเร็จ
  • notRequested : ไม่มีการร้องขอการแข่งขัน หรือการแข่งขันได้เสร็จสิ้นแล้วและไม่มีการแข่งขันที่กำลังดำเนินอยู่
requestingInfo ข้อมูลการร้องขอ
  • requestTimeUtc: เวลาที่ร้องขออิงตาม UTC+0
  • point: point ที่ป้อนระหว่างการร้องขอ
  • extraData: extraData ที่ป้อนระหว่างการร้องขอ
matchingInfo ข้อมูลความก้าวหน้าการจับคู่ (status)
  • matchingInProgress: กำลังดำเนินการจับคู่
  • timeout: การจับคู่ไม่สำเร็จภายในเวลาที่กำหนด
  • matched: การจับคู่เสร็จสิ้น

ตัวอย่างคำขอ

curl --location --request GET 'https://sandbox-api-match.withhive.com/gameindexes/1/matchmakings/1/players?id=100' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a'

ตัวอย่างการตอบกลับ

เมื่อผู้พัฒนายังไม่ได้ทำการร้องขอที่ตรงกัน ผลลัพธ์สถานะการจับคู่เป็นดังนี้

{
   "playerId": 100,
   "matchInfo": {
       "gameIndex": 1,
       "matchId": 1
   },
   "requestingStatus": "notRequested"
}


เมื่อมีการส่งคำขอที่ตรงกัน 매칭 요청 และการจับคู่ยังคงดำเนินอยู่ มันจะส่งคืนผลลัพธ์ requested และ matchingInProgress

{
   "playerId": 100,
   "matchInfo": {
       "gameIndex": 1,
       "matchId": 1
   },
   "requestingStatus": "requested",
   "requestingInfo": {
       "requestTimeUtc": "2024-06-05T05:09:28.72",
       "point": 1000
   },
   "matchingInfo": {
       "status": "matchingInProgress"
   }
}


เมื่อทำการตรวจสอบสถานะคำขอหลังจากการจับคู่เสร็จสิ้น จะส่งคืนผลลัพธ์เป็น matched หรือ timeout นี่คือสถานะหลังจากการจับคู่เสร็จสิ้น แต่ก่อนที่จะได้รับ ผลลัพธ์การจับคู่ callback

    {
       "playerId": 100,
       "matchInfo": {
           "gameIndex": 1,
           "matchId": 1
       },
       "requestingStatus": "requested",
       "requestingInfo": {
           "requestTimeUtc": "2024-06-05T05:09:28.72",
           "point": 1000
       },
       "matchingInfo": {
           "status": "matched"
       }
   }


เมื่อการจับคู่เสร็จสมบูรณ์ เซิร์ฟเวอร์ Hive จะ ส่งผลลัพธ์การจับคู่เป็นการเรียกกลับ ไปยังเซิร์ฟเวอร์ของนักพัฒนา หลังจากที่เซิร์ฟเวอร์ของนักพัฒนาได้รับการเรียกกลับผลลัพธ์การจับคู่และส่งกลับ HTTP Status 200 ไปยังเซิร์ฟเวอร์ Hive หากสถานะคำขอการจับคู่ถูกตรวจสอบอีกครั้ง จะเปลี่ยนเป็น notRequested ตามที่แสดงด้านล่าง และคีย์ matchingInfo จะถูกลบออก นี่เป็นเพราะเมื่อเซิร์ฟเวอร์ Hive ได้รับ HTTP Status 200 เป็นการตอบกลับการเรียกกลับ จะถือว่าการจับคู่ที่นักพัฒนาขอได้เสร็จสิ้นแล้วและจะลบธุรกรรมคำขอการจับคู่ที่เกี่ยวข้องออก

{
   "playerId": 100,
   "matchInfo": {
       "gameIndex": 1,
       "matchId": 1
   },
   "requestingStatus": "notRequested"
}


ก่อนการร้องขอการจับคู่ หลังการร้องขอการจับคู่ หลังจากการสร้างผลลัพธ์การจับคู่ หลังจากการรับการเรียกกลับ
requestingStatus notRequested requested requested notRequested
matchingInfo > Status N/A matchingInProgress matched or timeout N/A
Remarks ในจุดที่การจับคู่กำลังดำเนินอยู่ ในจุดก่อนการรับการเรียกกลับ

ยกเลิกคำขอจับคู่

ยกเลิกคำขอการจับคู่ หากคุณยกเลิกคำขอการจับคู่ คำขอการจับคู่ในเซิร์ฟเวอร์ Hive จะถูกลบออก

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

URL การร้องขอ

ลิงก์สด https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players/{playerId}
ลิงก์แซนด์บ็อกซ์ https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players/{playerId}
วิธีการ HTTP DELETE

พารามิเตอร์หัวเรื่อง

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
Authorization โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) string Y

พารามิเตอร์เส้นทาง

ชื่อฟิลด์ คำอธิบาย ประเภท จำเป็น
gameIndex รหัสโปรเจกต์ที่สามารถตรวจสอบได้ในศูนย์แอป Hive console int Y
matchId รหัสสำหรับแต่ละแมตช์ที่สร้างใน Hive console int Y
playerId รหัสผู้ใช้ long Y

การตอบกลับ

ในกรณีของ 200 OK ข้อมูลใน Body ว่างเปล่า

ตัวอย่างคำขอ

curl --location --request DELETE 'https://sandbox-api-match.withhive.com/gameindexes/1/matchmakings/1/players/100' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a'

ตัวอย่างการตอบกลับ

ไม่มีเนื้อหาการตอบสนองพิเศษเมื่อการประมวลผลสำเร็จ