API การจับคู่กลุ่ม
นี่คือ API ที่ใช้สำหรับการจับคู่ในกลุ่ม เช่น คนรู้จักหรือเพื่อน ในระหว่างการเล่นเกม.
ก่อนที่จะทำการขอจับคู่ ผู้ใช้แอปสองคนขึ้นไปจะต้องสร้าง กลุ่ม และตัวแทนกลุ่มจะดำเนินการขอจับคู่
Note
การใช้ API กลุ่มสามารถทำได้เมื่อการตั้งค่า Match ID สำหรับ Match Unit / Personnel ถูกตั้งค่าเป็น Team
สร้างกลุ่ม
นี่คือ API สำหรับการสร้างกลุ่มเพื่อเชิญสมาชิกเข้าร่วมทีมเดียวกัน
- ผู้สร้างคำขอจะกลายเป็นผู้นำกลุ่ม (ผู้นำห้อง)。
- ไม่สามารถใช้ในระหว่างคำขอการจับคู่ส่วนบุคคลได้。
- รหัสการเข้าร่วมสำหรับเชิญคนรู้จักจะถูกจัดเตรียมเมื่อสร้าง。
- เมื่อสร้าง สามารถป้อนข้อมูลคะแนนเพื่อให้สอดคล้องกับกฎของ
match ID。
URL การร้องขอ
| ลิงก์สด | https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/group |
| ลิงก์แซนด์บ็อกซ์ | https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/group |
| วิธีการ HTTP | POST |
| ประเภทเนื้อหา | application/json |
พารามิเตอร์หัวเรื่อง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| การอนุญาต | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | Y |
พารามิเตอร์เส้นทาง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| gameIndex | รหัสโปรเจกต์ที่สามารถตรวจสอบได้ในศูนย์แอป Hive console | int | Y |
| matchId | รหัสสำหรับแต่ละแมตช์ที่สร้างขึ้นใน Hive console | int | Y |
เนื้อหาคำขอ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| playerId | ตัวระบุบัญชี | long | ใช่ |
| point | นี่คือคะแนนที่จะใช้ในการจับคู่ ช่วงค่าที่ป้อนคือ 0 ~ 999,999,999 หากไม่ระบุ จะถือว่าเป็น 0. | integer | ไม่ |
| extraData | ข้อมูลบัญชีเพิ่มเติม (ชื่อเล่น, ระดับ, ประเทศ ฯลฯ) สามารถป้อนได้สูงสุด 256 ตัวอักษร จะรวมอยู่ในผลลัพธ์การจับคู่ | string | ไม่ |
การตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| groupCode | รหัสที่จำเป็นในการเข้ากลุ่ม | string |
| ownerPlayerId | รหัสประจำตัวบัญชีของเจ้าของกลุ่ม (โฮสต์) | long |
| memberInfos | ข้อความผลลัพธ์ | object |
| matchInfo | ข้อมูลเกี่ยวกับ gameIndex และ matchId ที่กลุ่มเกี่ยวข้อง | object |
| requstingStatus | ข้อมูลสถานะการร้องขอ | string |
ตัวอย่างคำขอ
curl --location 'http://sandbox-api-match.withhive.com/gameindexes/2/matchmakings/1/group' --header 'Content-Type: application/json' --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a' --data '{"playerId":1}'
ตัวอย่างการตอบกลับ
{
"groupCode": "0343322",
"matchInfo": {
"gameIndex": 2,
"matchId": 1
},
"ownerPlayerId": 1,
"memberInfos": [
{
"playerId": 1
}
],
"requestingStatus": "notRequested"
}
เข้าร่วมกลุ่ม
นี่คือ API ที่ใช้เมื่อผู้ใช้แอปที่ต้องการเข้าร่วมกลุ่มใช้รหัส (groupCode) ที่ได้รับจากผู้นำกลุ่ม (ผู้นำห้อง) เพื่อเข้าร่วมกลุ่ม
URL การร้องขอ
| URL สด | https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/groups/code/{code}/member |
| URL แซนด์บ็อกซ์ | https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/groups/code/{code}/member |
| วิธีการ HTTP | POST |
พารามิเตอร์หัวเรื่อง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| การอนุญาต | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | ใช่ |
พารามิเตอร์เส้นทาง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| gameIndex | รหัสโปรเจกต์ที่สามารถตรวจสอบได้ในศูนย์แอป Hive console | int | ใช่ |
| matchId | รหัสการแข่งขันแต่ละรายการที่สร้างขึ้นใน Hive console | int | ใช่ |
| code | ค่า groupCode ที่ได้รับในคำตอบของ API การสร้างกลุ่ม | string | ใช่ |
เนื้อหาคำขอ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| playerId | รหัสประจำตัวบัญชี | long | Y |
| point | นี่คือคะแนนที่จะใช้ในการจับคู่ ช่วงค่าที่ป้อนคือ 0 ~ 999,999,999 หากไม่ป้อน จะถือว่าเป็น 0. | integer | N |
| extraData | ข้อมูลบัญชีเพิ่มเติม (ชื่อเล่น, ระดับ, ประเทศ, ฯลฯ) สามารถป้อนได้สูงสุด 256 ตัวอักษร จะถูกนำไปใช้ในผลลัพธ์การจับคู่ | string | N |
การตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| groupCode | รหัสเพื่อเข้าสู่กลุ่มที่เกี่ยวข้อง | string |
| ownerPlayerId | รหัสประจำตัวสำหรับบัญชีผู้นำกลุ่ม (โฮสต์) | long |
| memberInfos | ข้อความผลลัพธ์ | object |
| matchInfo | ข้อมูลเกี่ยวกับ gameIndex และ matchId ที่กลุ่มเกี่ยวข้อง | object |
| requestingStatus | ข้อมูลสถานะการร้องขอ | string |
ตัวอย่างคำขอ
curl --location 'http://sandbox-api-match.withhive.com/gameindexes/2/matchmakings/1/groups/code/0343322/member' --header 'Content-Type: application/json' --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a' --data '{"playerId":2}'
ตัวอย่างการตอบกลับ
{
"groupCode": "0343322",
"matchInfo": {
"gameIndex": 2,
"matchId": 1
},
"ownerPlayerId": 1,
"memberInfo": [
{
"playerId": 1
},
{
"playerId": 2
}
],
"requestingStatus": "notRequested"
}
ออกจากกลุ่ม
นี่คือ API ที่ใช้เมื่อคุณต้องการออกจากกลุ่มที่คุณอยู่ในขณะนี้ หากผู้นำกลุ่ม (ผู้นำห้อง) ออกไป หนึ่งในสมาชิกที่เหลือจะกลายเป็นผู้นำกลุ่มคนถัดไป
หากไม่มีสมาชิกที่เหลืออยู่ กลุ่มจะถูกลบออก
URL ที่ร้องขอ
| ลิงก์สด | https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players/{playerId}/group |
| ลิงก์แซนด์บ็อกซ์ | https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players/{playerId}/group |
| วิธีการ HTTP | DELETE |
พารามิเตอร์หัวเรื่อง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| การอนุญาต | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | ใช่ |
พารามิเตอร์เส้นทาง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| gameIndex | รหัสโปรเจกต์ที่มีอยู่ในศูนย์แอปของ Hive console | int | ใช่ |
| matchId | รหัสสำหรับแต่ละแมตช์ที่สร้างใน Hive console | int | ใช่ |
| playerId | รหัสผู้ใช้ | long | ใช่ |
การตอบกลับ
ในกรณีของ 200 OK ร่างกายว่างเปล่า
ตัวอย่างคำขอ
curl --location --request DELETE 'http://sandbox-api-match.withhive.com/gameindexes/2/matchmakings/1/players/2/group' --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a'
ตัวอย่างการตอบกลับ
ไม่มีเนื้อหาการตอบสนองพิเศษเมื่อประมวลผลตามปกติ
การไล่กลุ่ม (Kick-out)
นี่คือ API ที่อนุญาตให้หัวหน้ากลุ่ม (หัวหน้าห้อง) ขับไล่สมาชิกเฉพาะออกไปโดยไม่สมัครใจ
URL ที่ร้องขอ
| ลิงก์สด | https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players/{playerId}/group/members/{targetPlayerId} |
| ลิงก์แซนด์บ็อกซ์ | https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players/{playerId}/group/members/{targetPlayerId} |
| วิธีการ HTTP | DELETE |
พารามิเตอร์ส่วนหัว
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| การอนุญาต | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | Y |
พารามิเตอร์เส้นทาง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| gameIndex | รหัสโปรเจกต์ที่สามารถตรวจสอบได้ในศูนย์แอป Hive console | int | ใช่ |
| matchId | รหัสสำหรับแต่ละแมตช์ที่สร้างใน Hive console | int | ใช่ |
| playerId | รหัสผู้ใช้ | long | ใช่ |
| targetPlayerId | รหัสของสมาชิกที่จะถูกบังคับให้ออกจาก | long | ใช่ |
การตอบกลับ
นี่คือรูปแบบของข้อมูลผลลัพธ์สำหรับ API การสร้างกลุ่ม ข้อมูลของสมาชิกที่ถูกบังคับให้ออกจากข้อมูลสมาชิก (memberInfos) จะถูกลบออกเท่านั้น
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| groupCode | รหัสเพื่อเข้าสู่กลุ่มที่เกี่ยวข้อง | string |
| ownerPlayerId | ตัวระบุสำหรับผู้นำกลุ่ม (โฮสต์) | long |
| memberInfos | ข้อความผลลัพธ์ | object |
| matchInfo | ข้อมูลเกี่ยวกับ gameIndex และ matchId ที่กลุ่มเป็นสมาชิก | object |
| requstingStatus | ข้อมูลสถานะการร้องขอ | string |
ตัวอย่างคำขอ
curl --location --request DELETE 'http://sandbox-api-match.withhive.com/gameindexes/2/matchmakings/1/players/1/group/members/2' --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a'
ตัวอย่างการตอบกลับ
{
"groupCode": "0343322",
"matchInfo": {
"gameIndex": 2,
"matchId": 1
},
"ownerPlayerId": 1,
"memberInfo": [
{
"playerId": 1
}
],
"requestingStatus": "notRequested"
}
การดึงข้อมูลกลุ่ม (ตามสมาชิกกลุ่ม)
นี่คือ API ที่ดึงข้อมูลเกี่ยวกับกลุ่มที่ผู้ใช้แอปอยู่ในขณะทำการร้องขอ มันสามารถใช้ได้สำหรับวัตถุประสงค์ต่างๆ และจำเป็นต้องตรวจสอบเป็นระยะๆ ผ่านการ polling
มักใช้สำหรับวัตถุประสงค์ต่อไปนี้
- ตรวจสอบรายชื่อผู้ใช้แอปที่เข้าร่วมกลุ่ม
- ตรวจสอบผลการจับคู่หลังจากคำขอการจับคู่
URL ที่ร้องขอ
| ลิงก์สด | https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players/{playerId}/group |
| ลิงก์แซนด์บ็อกซ์ | https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players/{playerId}/group |
| วิธีการ HTTP | GET |
พารามิเตอร์หัวข้อ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| การอนุญาต | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | Y |
พารามิเตอร์เส้นทาง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| gameIndex | รหัสโปรเจกต์ที่สามารถพบได้ในศูนย์แอป Hive console | int | ใช่ |
| matchId | รหัสสำหรับแต่ละแมตช์ที่สร้างขึ้นใน Hive console | int | ใช่ |
| playerId | รหัสผู้ใช้ | long | ใช่ |
การตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| groupCode | รหัสเพื่อเข้าสู่กลุ่มที่ соответств | string |
| ownerPlayerId | รหัสประจำตัวของบัญชีผู้นำกลุ่ม | long |
| memberInfos | ข้อความผลลัพธ์ | object |
| matchInfo | ข้อมูลเกี่ยวกับ gameIndex และ matchId ของกลุ่ม | object |
| requstingStatus | ข้อมูลสถานะการร้องขอ | string |
| requestingInfo | ข้อมูลการร้องขอการจับคู่ | object |
| matchingInfo | ข้อมูลความก้าวหน้าการจับคู่ | object |
ตัวอย่างคำขอ
curl --location 'http://sandbox-api-match.withhive.com/gameindexes/2/matchmakings/1/players/1/group' --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a'
ตัวอย่างการตอบกลับ
// 매칭 요청 전
{
"groupCode": "0343322",
"matchInfo": {
"gameIndex": 2,
"matchId": 1
},
"ownerPlayerId": 1,
"memberInfo": [
{
"playerId": 1
}
],
"requestingStatus": "notRequested"
}
// 매칭이 성사된 이후 (2:2 팀전)
{
"groupCode": "3683207",
"matchInfo": {
"gameIndex": 2,
"matchId": 1
},
"ownerPlayerId": 1,
"memberInfo": [
{
"playerId": 1,
"ready": true
},
{
"playerId": 2,
"ready": true
}
],
"matchingInfo": {
"status": "matched",
"matchingId": "2:1_2024-12-18T06:55:19.91_1",
"teamInfos": [
{
"teamIndex": 0,
"playerInfos": [
{
"playerId": 4,
"point": 50,
"extraData": "bbb"
},
{
"playerId": 3,
"extraData": "aaa"
}
]
},
{
"teamIndex": 1,
"playerInfos": [
{
"playerId": 1,
"extraData": "extra1"
},
{
"playerId": 2,
"point": 250,
"extraData": "aaa"
}
]
}
]
},
"requestingStatus": "requested",
"requestingInfo": {
"requestTimeUtc": "2024-12-18T06:55:19.17"
}
}
// 매칭 시간이 초과된 경우(timeout)
{
"groupCode": "0400606",
"matchInfo": {
"gameIndex": 2,
"matchId": 1
},
"ownerPlayerId": 1,
"memberInfo": [
{
"playerId": 1,
"ready": true
},
{
"playerId": 2,
"ready": true
}
],
"matchingInfo": {
"status": "timeout"
},
"requestingStatus": "requested",
"requestingInfo": {
"requestTimeUtc": "2024-12-20T06:37:47.99"
}
}
การดึงข้อมูลกลุ่ม (ตามรหัส)
นี่คือ API ที่ตรวจสอบว่ากลุ่มมีอยู่จริงหรือไม่ โดยใช้รหัส (groupCode) ที่จัดเตรียมโดยหัวหน้ากลุ่ม (หัวหน้าห้อง)
URL ที่ร้องขอ
| ลิงก์สด | https://api-match.withhive.com/gameindexes/{gameIndex}/groups |
| ลิงก์แซนด์บ็อกซ์ | https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/groups |
| วิธีการ HTTP | GET |
พารามิเตอร์หัวเรื่อง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| การอนุญาต | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | Y |
พารามิเตอร์เส้นทาง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| gameIndex | รหัสประจำโปรเจกต์ที่สามารถตรวจสอบได้ในศูนย์แอป Hive console | int | Y |
พารามิเตอร์การค้นหา
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| รหัส | รหัสกลุ่ม (groupCode) | สตริง | ใช่ |
การตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| groupCode | รหัสที่จำเป็นในการเข้ากลุ่ม | สตริง |
| ownerPlayerId | รหัสประจำตัวของเจ้าของกลุ่ม (โฮสต์) | ยาว |
| matchInfo | ข้อมูลเกี่ยวกับ gameIndex และ matchId ที่กลุ่มนั้นเกี่ยวข้อง | อ็อบเจ็กต์ |
ตัวอย่างคำขอ
curl --location 'http://sandbox-api-match.withhive.com/gameindexes/2/groups?code=0343322' --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a'
ตัวอย่างการตอบกลับ
{
"groupCode": "0343322",
"matchInfo": {
"gameIndex": 2,
"matchId": 1
},
"ownerPlayerId": 1
}
การอัปเดตข้อมูลสมาชิก
นี่คือ API ที่ใช้เมื่อสมาชิกในกลุ่มต้องการเปลี่ยนข้อมูลของตน ข้อมูลที่สามารถเปลี่ยนแปลงได้มีดังนี้
- สถานะพร้อม (
ready) - หัวหน้ากลุ่ม (หัวหน้าห้อง) เป็นรายการที่ไม่ได้ใช้งาน.\n - คะแนน (
point)\n - ข้อมูลเพิ่มเติม (
extraData)
URL ที่ร้องขอ
| ลิงก์สด | https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players/{playerId}/group/memberinfo |
| ลิงก์แซนด์บ็อกซ์ | https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players/{playerId}/group/memberinfo |
| วิธีการ HTTP | PATCH |
| ประเภทเนื้อหา | application/json |
พารามิเตอร์หัวเรื่อง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | Y |
พารามิเตอร์เส้นทาง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| gameIndex | รหัสโปรเจกต์ที่สามารถตรวจสอบได้ในศูนย์แอป Hive console | int | ใช่ |
| matchId | รหัสการแข่งขันแต่ละรายการที่สร้างขึ้นใน Hive console | int | ใช่ |
| playerId | รหัสผู้ใช้ | long | ใช่ |
เนื้อหาคำขอ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| ready | สถานะพร้อม | boolean | Y |
| point | นี่คือคะแนนที่จะใช้สำหรับการจับคู่ ช่วงค่าข้อมูลคือ 0 ~ 999,999,999 หากไม่กรอก จะถือว่าเป็น 0. | integer | N |
| extraData | ข้อมูลบัญชีเพิ่มเติม (ชื่อเล่น, ระดับ, ประเทศ ฯลฯ) สามารถกรอกได้สูงสุด 256 ตัวอักษร จะรวมอยู่ในผลลัพธ์การจับคู่ | string | N |
การตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| groupCode | รหัสเพื่อเข้าสู่กลุ่มที่เกี่ยวข้อง | string |
| ownerPlayerId | รหัสบัญชีของผู้นำกลุ่ม | long |
| memberInfos | ข้อความผลลัพธ์ | object |
| matchInfo | ข้อมูลเกี่ยวกับ gameIndex และ matchId ที่กลุ่มเกี่ยวข้อง | object |
| requstingStatus | ข้อมูลสถานะการขอ | string |
ตัวอย่างคำขอ
curl --location --request PATCH 'http://sandbox-api-match.withhive.com/gameindexes/2/matchmakings/1/players/2/group/memberinfo' --header 'Content-Type: application/json' --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a' --data '{"ready":false,"point":0,"extraData":""}'
ตัวอย่างการตอบกลับ
{
"groupCode": "0343322",
"matchInfo": {
"gameIndex": 2,
"matchId": 1
},
"ownerPlayerId": 1,
"memberInfo": [
{
"playerId": 1
}
],
"requestingStatus": "notRequested"
}
การจับคู่คำขอ
นี่คือ API ที่ร้องขอสำหรับแต่ละกลุ่มเพื่อเริ่มการจับคู่
- คุณต้องสร้างการแข่งขันที่ตรงกับ
matchId ล่วงหน้าในคอนโซล (เช่นเดียวกับคำขอการจับคู่ส่วนบุคคล) - จะต้องมีสมาชิกอย่างน้อย 2 คนในขณะทำการขอ
- สมาชิกที่ไม่ใช่หัวหน้ากลุ่ม (หัวหน้าห้อง) จะต้องตั้งสถานะ 'พร้อม' (Ready) เป็น
true - หากมีการแข่งขันที่กำลังดำเนินอยู่ จะต้องถูกจัดระเบียบ (ลบ) ก่อนที่จะทำการขอ
- เฉพาะตัวแทนกลุ่ม (หัวหน้าห้อง) เท่านั้นที่สามารถทำการขอได้
URL การร้องขอ
| URL สด | https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/group/request |
| URL แซนด์บ็อกซ์ | https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/group/request |
| วิธีการ HTTP | POST |
| ประเภทเนื้อหา | application/json |
พารามิเตอร์หัวเรื่อง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| Authorization | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | Y |
พารามิเตอร์เส้นทาง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| gameIndex | รหัสโปรเจกต์ที่สามารถตรวจสอบได้ในศูนย์แอป Hive console | int | ใช่ |
| matchId | รหัสสำหรับแต่ละแมตช์ที่สร้างขึ้นใน Hive console | int | ใช่ |
เนื้อหาคำขอ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| playerId | รหัสบัญชี | long | Y |
การตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| groupCode | รหัสเพื่อเข้าสู่กลุ่มที่เกี่ยวข้อง | string |
| ownerPlayerId | รหัสประจำตัวของผู้นำกลุ่ม (โฮสต์) | long |
| memberInfos | ข้อความผลลัพธ์ | object |
| matchInfo | ข้อมูลเกี่ยวกับ gameIndex และ matchId ที่กลุ่มเป็นส่วนหนึ่ง | object |
| requstingStatus | ข้อมูลสถานะการร้องขอ | string |
| requestingInfo | ข้อมูลการร้องขอการจับคู่ | object |
| matchingInfo | ข้อมูลความก้าวหน้าของการจับคู่ | object |
ตัวอย่างคำขอ
curl --location 'http://sandbox-api-match.withhive.com/gameindexes/2/matchmakings/1/group/request' --header 'Content-Type: application/json' --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a' --data '{"playerId":1}'
ตัวอย่างการตอบกลับ
{
"groupCode": "0343322",
"matchInfo": {
"gameIndex": 2,
"matchId": 1
},
"ownerPlayerId": 1,
"memberInfo": [
{
"playerId": 1
},
{
"playerId": 2,
"ready": true
}
],
"matchingInfo": {
"status": "matchingInProgress"
},
"requestingStatus": "requested",
"requestingInfo": {
"requestTimeUtc": "2024-12-05T07:35:35.15"
}
}
ยกเลิกคำขอการจับคู่
URL การร้องขอ
| URL สด | https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/group/request |
| URL แซนด์บ็อกซ์ | https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/group/request |
| วิธีการ HTTP | DELETE |
พารามิเตอร์หัวเรื่อง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| การอนุญาต | โทเค็นการตรวจสอบสิทธิ์สำหรับการเรียก API (Bearer) | string | Y |
พารามิเตอร์เส้นทาง
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| gameIndex | รหัสโปรเจกต์ที่สามารถตรวจสอบได้ในศูนย์แอป Hive console | int | ใช่ |
| matchId | รหัสการแข่งขันแต่ละรายการที่สร้างขึ้นใน Hive console | int | ใช่ |
เนื้อหาคำขอ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
| playerId | รหัสบัญชี | long | Y |
การตอบกลับ
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| groupCode | รหัสสำหรับเข้ากลุ่ม | string |
| ownerPlayerId | ตัวระบุสำหรับหัวหน้ากลุ่ม | long |
| memberInfos | ข้อความผลลัพธ์ | object |
| matchInfo | ข้อมูลเกี่ยวกับ gameIndex และ matchId ที่กลุ่มเกี่ยวข้อง | object |
| requstingStatus | ข้อมูลสถานะการขอ | string |
ตัวอย่างคำขอ
curl --location --request DELETE 'https://sandbox-api-match.withhive.com/gameindexes/2/matchmakings/1/group/request' --header 'Content-Type: application/json' --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a' --data '{"playerId":3}'
ตัวอย่างการตอบกลับ
{
"groupCode": "0343322",
"matchInfo": {
"gameIndex": 2,
"matchId": 1
},
"ownerPlayerId": 1,
"memberInfo": [
{
"playerId": 1
},
{
"playerId": 2
}
],
"requestingStatus": "notRequested"
}
การตอบสนองสาธารณะ
นี่คือคำอธิบายของฟิลด์ที่ใช้บ่อยในคำตอบ API ที่เกี่ยวข้องกับกลุ่ม
memberInfos
ข้อมูลเกี่ยวกับสมาชิกที่อยู่ในกลุ่ม (รวมถึงหัวหน้ากลุ่มหรือหัวหน้าห้อง) มีดังต่อไปนี้
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| playerId | ตัวระบุบัญชี | long |
| ready | สถานะพร้อม | boolean |
| point | คะแนนที่ป้อนเมื่อเข้าร่วม (อัปเดต) กลุ่ม | integer |
| extraData | ข้อมูลเพิ่มเติมที่ป้อนเมื่อเข้าร่วม (อัปเดต) กลุ่ม | string |
matchInfo
ฟิลด์ที่ประกอบด้วยข้อมูล gameIndex และ matchId ที่กลุ่มเป็นสมาชิกมีดังนี้
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| gameIndex | ค่าของ Game Index ของโปรเจกต์ที่ลงทะเบียนใน App Center ของคอนโซล | จำนวนเต็ม |
| matchId | Match ID ที่ลงทะเบียนใน Matchmaking ของคอนโซล | จำนวนเต็ม |
requestingStatus
ค่าที่ตรงกับฟิลด์สถานะคำขอที่ตรงกันมีดังต่อไปนี้
notRequested: ไม่ได้ขอให้จับคู่ requested: ขอให้จับคู่
requestingInfo
นี่คือฟิลด์ข้อมูลคำขอที่ตรงกัน
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| requestTimeUtc | เวลาที่ร้องขอโดยอิงจาก UTC+0 | string |
matchingInfo
ฟิลด์ที่ประกอบด้วยข้อมูลความก้าวหน้าที่ตรงกันมีดังต่อไปนี้
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| สถานะ | สถานะความก้าวหน้าของการจับคู่ | string |
| matchingId | รหัสที่กำหนดให้กับการจับคู่ที่ตรงกัน เพิ่มเมื่อ สถานะ ข้างต้นเป็น matched. | string |
| ข้อมูลส่วนตัว | (ในกรณีที่มีการจับคู่แบบบุคคล) แสดงอาร์เรย์ของข้อมูลผู้ใช้แอปที่ตรงกัน. | array |
| ข้อมูลทีม | (ในกรณีที่มีการจับคู่แบบทีม) แสดงอาร์เรย์ของข้อมูลผู้ใช้แอปที่ตรงกัน. | array |
matchingInfo → สถานะ
ค่าที่ตรงกับฟิลด์สถานะในข้อมูลความก้าวหน้าที่ตรงกันมีดังนี้
matchingInProgress : กำลังจับคู่ timeout : ไม่พบการจับคู่ภายในเวลาที่กำหนด matched : การจับคู่สำเร็จ
matchingInfo → privateInfos
ข้อมูลที่ประกอบขึ้นเป็นข้อมูลผู้ใช้แอปการจับคู่ส่วนบุคคลในระหว่างข้อมูลความก้าวหน้าของการจับคู่มีดังต่อไปนี้ มันอยู่ในรูปแบบข้อมูลเดียวกันกับ matchingInfo → teamInfos → playerInfos。
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| playerId | ตัวระบุบัญชี ต้องถูกประมวลผลเป็นบอทหากเป็น 0 | long |
| point | คะแนนที่ป้อนเมื่อเข้าร่วม (อัปเดต) กลุ่ม | integer |
| extraData | ข้อมูลเพิ่มเติมที่ป้อนเมื่อเข้าร่วม (อัปเดต) กลุ่ม | string |
matchingInfo → teamInfos
ข้อมูลในฟิลด์ที่ประกอบเป็นข้อมูลทีมที่ตรงกันในกลุ่มการจับคู่ของข้อมูลความก้าวหน้าการจับคู่มีดังต่อไปนี้
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| teamIndex | ค่าที่ใช้ในการแยกแยะทีม โดยเริ่มจาก 0 | จำนวนเต็ม |
| playerInfos | ข้อมูลเกี่ยวกับผู้ใช้แอปที่เป็นสมาชิกของทีม | อาร์เรย์ |
matchingInfo → teamInfos → playerInfos
ฟิลด์ที่กำหนดข้อมูลผู้ใช้แอปของทีมที่ตรงกันในกระบวนการจับคู่มีดังต่อไปนี้.
มันอยู่ในรูปแบบข้อมูลเดียวกันกับ matchingInfo → privateInfos.
| ชื่อฟิลด์ | คำอธิบาย | ประเภท |
| playerId | ตัวระบุบัญชี ต้องถูกประมวลผลเป็นบอทหากเป็น 0 | long |
| point | คะแนนที่ป้อนเมื่อเข้าร่วม (อัปเดต) กลุ่ม | integer |
| extraData | ข้อมูลเพิ่มเติมที่ป้อนเมื่อเข้าร่วม (อัปเดต) กลุ่ม | string |