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 |