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