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

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