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'
ตัวอย่างการตอบกลับ
ไม่มีเนื้อหาการตอบสนองพิเศษเมื่อการประมวลผลสำเร็จ