การแจ้งเตือนเกม
คู่มือนี้อธิบายวิธีการใช้งาน API การสอบถามประกาศในเกม
ก่อนเรียก API คุณต้องลงทะเบียนประกาศที่จะแสดงในเกมจาก Hive Console ก่อน ลงทะเบียนประกาศ
ภาพรวม¶
API การสอบถามประกาศในเกมจะถูกเรียกโดยตรงจากเกมผ่านการสื่อสารแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์ และรองรับอินเทอร์เฟซสองประเภทขึ้นอยู่กับวิธีการสอบถาม
- ดูประกาศทั้งหมด: ดึงข้อมูลประกาศทั้งหมดสำหรับเกมที่ระบุ (
game_index) ในครั้งเดียว - ดูประกาศแบบแบ่งหน้า: ดึงข้อมูลประกาศสำหรับเกมที่ระบุ (
game_index) แบบแบ่งหน้า (Pagination)
ส่วนหัวคำขอ Authorization ต้องมีโทเคนการยืนยันตัวตน (Hive authentication key) ผลตอบกลับประกอบด้วย ข้อมูลพื้นฐานของประกาศ, รายละเอียดตามภาษา, รายการ ID เซิร์ฟเวอร์เกม และ รายการรหัสประเทศ
ประกาศจะถูกส่งกลับในผลตอบกลับเฉพาะเมื่อตรงตามเงื่อนไขทั้งหมดต่อไปนี้:
status = 1: สถานะเปิดใช้งานstart_time <= เวลาปัจจุบัน: เวลาปัจจุบันอยู่หลังเวลาเริ่มแสดงผลend_time >= เวลาปัจจุบัน: เวลาปัจจุบันอยู่ก่อนเวลาสิ้นสุดการแสดงผล
Note
เวลาทั้งหมดอ้างอิงตาม KST (UTC+9)
ข้อกำหนดผลตอบกลับร่วม¶
อธิบายตัวอย่างผลตอบกลับและรหัสผลตอบกลับที่ใช้กับการเรียก API การสอบถามประกาศในเกมทั้งหมด
ตัวอย่างผลตอบกลับเมื่อสำเร็จ¶
ตัวอย่างผลตอบกลับเมื่อเกิดข้อผิดพลาด¶
รหัสผลตอบกลับ¶
| HTTP status code | Code | Message | Description |
|---|---|---|---|
| 200 | 0 | Success | ประมวลผลสำเร็จ |
| 500 | 1100 | Unknown error | ข้อผิดพลาดที่ไม่ทราบสาเหตุ |
| 500 | 1101 | Internal server error | ข้อผิดพลาดภายในเซิร์ฟเวอร์ |
| 400 | 1201 | Detail message (e.g., Missing required parameter: game_index) | ข้อผิดพลาดรูปแบบคำขอ |
| 400 | 1202 | Detail message (e.g., `game_index` must be a positive integer) | ข้อผิดพลาดค่าพารามิเตอร์ |
| 401 | 1203 | Unauthorized | ข้อผิดพลาดการอนุญาต |
| 405 | 1204 | Method not allowed | ข้อผิดพลาดเมธอดคำขอ HTTP |
ดูประกาศทั้งหมด¶
ส่งกลับรายการประกาศทั้งหมดสำหรับเกมที่ระบุ (game_index)
ข้อมูลคำขอ¶
| รายการ | รายละเอียด |
|---|---|
| Production URL | https://social-api.qpyou.cn/games/{game_index}/notices |
| Sandbox URL | https://sandbox-social-api.qpyou.cn/games/{game_index}/notices |
| HTTP Method | GET |
| Response Format | JSON |
ข้อมูลคำขอ¶
ส่วนหัวคำขอ¶
| ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย | หมายเหตุ |
|---|---|---|---|---|
| Authorization | string | Y | Bearer token (Hive authentication key) | AppCenter > Project Management > Game Details > Basic Information > Hive authentication key |
ตัวอย่างส่วนหัวคำขอ¶
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30
พารามิเตอร์เส้นทาง¶
| ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
| game_index | int | Y | ดัชนีเกม (จำนวนเต็มบวก) |
เนื้อหาคำขอ¶
ไม่มี (คำขอ GET)
ตัวอย่างคำขอ¶
curl -X GET "https://sandbox-social-api.qpyou.cn/games/313/notices" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30"
ข้อมูลผลตอบกลับ¶
เนื้อหาผลตอบกลับ¶
| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
| result_code | int | รหัสผลลัพธ์ของผลตอบกลับ |
| result_msg | string | ข้อความผลลัพธ์ |
| data | object | ข้อมูลผลตอบกลับ |
| ㄴ list | array | รายการประกาศ (อาร์เรย์ของออบเจกต์ ข้อมูลพื้นฐานของประกาศ; ส่งกลับ [] หากไม่มีผลลัพธ์) |
ตัวอย่างผลตอบกลับ¶
{
"result_code": 0,
"result_msg": "Success",
"data": {
"list": [
{
"notice_id": 123,
"status": 1,
"type": "N",
"view_count": 500,
"registrant": "admin",
"top_placed": 1,
"start_time": "2026-03-01 00:00:00",
"end_time": "2026-03-31 23:59:59",
"company_index": 1,
"game_index": 313,
"country_expose_type": "W",
"details": {
"ko": {
"game_name": "테스트게임",
"title": "공지사항 제목",
"content": "공지사항 내용",
"crop_image": "https://example.com/img/123_kor.png"
},
"en": {
"game_name": "TestGame",
"title": "Notice Title",
"content": "Notice Content",
"crop_image": "https://example.com/img/123_eng.png"
}
},
"game_servers": ["server1", "server2"],
"country_codes": ["KR", "US"]
}
]
}
}
ดูประกาศแบบแบ่งหน้า¶
ส่งกลับรายการประกาศสำหรับเกมที่ระบุ (game_index) แบบแบ่งหน้า
ดูประกาศทั้งหมด จะเปลี่ยนเป็นโหมดแบ่งหน้าเมื่อมีพารามิเตอร์คิวรี page หรือ per_page อยู่ในคำขอ
ข้อมูลคำขอ¶
| รายการ | รายละเอียด |
|---|---|
| Production URL | https://social-api.qpyou.cn/games/{game_index}/notices?page={page}&per_page={per_page} |
| Sandbox URL | https://sandbox-social-api.qpyou.cn/games/{game_index}/notices?page={page}&per_page={per_page} |
| HTTP Method | GET |
| Response Format | JSON |
ข้อมูลคำขอ¶
ส่วนหัวคำขอ¶
| ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย | หมายเหตุ |
|---|---|---|---|---|
| Authorization | string | Y | Bearer token (Hive authentication key) | AppCenter > Project Management > Game Details > Basic Information > Hive authentication key |
ตัวอย่างส่วนหัวคำขอ¶
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30
พารามิเตอร์เส้นทาง¶
| ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
| game_index | int | Y | ดัชนีเกม (จำนวนเต็มบวก) |
พารามิเตอร์คิวรี¶
Note
หาก page หรือ per_page ไม่ใช่จำนวนเต็มบวก ระบบจะใช้ค่าเริ่มต้นแทน
| พารามิเตอร์ | ประเภท | จำเป็น | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|---|
| page | int | N | 1 | หมายเลขหน้า (เริ่มจาก 1) |
| per_page | int | N | 20 | จำนวนรายการต่อหน้า |
เนื้อหาคำขอ¶
ไม่มี (คำขอ GET)
ตัวอย่างคำขอ¶
curl -X GET "https://sandbox-social-api.qpyou.cn/games/313/notices?page=1&per_page=20" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30"
ข้อมูลผลตอบกลับ¶
เนื้อหาผลตอบกลับ¶
| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
| result_code | int | รหัสผลลัพธ์ของผลตอบกลับ |
| result_msg | string | ข้อความผลลัพธ์ |
| data | object | ข้อมูลผลตอบกลับ |
| ㄴ pagination | object | ข้อมูล Pagination |
| ㄴ page | int | หมายเลขหน้าปัจจุบัน |
| ㄴ per_page | int | จำนวนรายการต่อหน้า |
| ㄴ total_count | int | จำนวนข้อมูลทั้งหมด |
| ㄴ total_pages | int | จำนวนหน้าทั้งหมด (ceil(total_count / per_page); 0 หาก total_count = 0) |
| ㄴ list | array | รายการประกาศ (อาร์เรย์ของออบเจกต์ ข้อมูลพื้นฐานของประกาศ; ส่งกลับ [] หากไม่มีผลลัพธ์) |
ตัวอย่างผลตอบกลับ¶
{
"result_code": 0,
"result_msg": "Success",
"data": {
"pagination": {
"page": 1,
"per_page": 20,
"total_count": 50,
"total_pages": 3
},
"list": [
{
"notice_id": 123,
"status": 1,
"type": "N",
"view_count": 500,
"registrant": "admin",
"top_placed": 1,
"start_time": "2026-03-01 00:00:00",
"end_time": "2026-03-31 23:59:59",
"company_index": 1,
"game_index": 313,
"country_expose_type": "W",
"details": {
"ko": {
"game_name": "테스트게임",
"title": "공지사항 제목",
"content": "공지사항 내용",
"crop_image": "https://example.com/img/123_kor.png"
},
"en": {
"game_name": "TestGame",
"title": "Notice Title",
"content": "Notice Content",
"crop_image": "https://example.com/img/123_eng.png"
}
},
"game_servers": ["server1", "server2"],
"country_codes": ["KR", "US"]
}
]
}
}
รายละเอียดข้อมูลผลตอบกลับ¶
ข้อมูลพื้นฐานของประกาศ¶
| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
| notice_id | int | ID ประจำตัวของประกาศ |
| status | int | สถานะ (1: เปิดใช้งาน; ส่งกลับเฉพาะประกาศที่เปิดใช้งาน) |
| type | string | ประเภทประกาศ (ดู รหัส type) |
| view_count | int | จำนวนการเข้าชม |
| registrant | string | ผู้ลงทะเบียน |
| top_placed | int|null | ปักหมุดไว้บนสุด (1 หรือมากกว่า: ปักหมุด, null: ไม่ปักหมุด) |
| start_time | string | เวลาเริ่มแสดง (yyyy-MM-dd HH:mm:ss, KST) |
| end_time | string | เวลาสิ้นสุดการแสดง (yyyy-MM-dd HH:mm:ss, KST) |
| company_index | int | ดัชนีบริษัท |
| game_index | int | ดัชนีเกม |
| country_expose_type | string|null | ประเภทการแสดงตามประเทศ (ดู รหัส country_expose_type; ค่าเริ่มต้น: null) |
| details | object | รายละเอียดตามภาษา (ดู details) |
| game_servers | array | รายการ ID เซิร์ฟเวอร์เกม (ดู game_servers) |
| country_codes | array | รายการรหัสประเทศ (ดู country_codes) |
รหัส type¶
| รหัส | คำอธิบาย |
|---|---|
I | ข้อมูล |
C | การบำรุงรักษา |
U | อัปเดต |
N | ประกาศ |
A | ประกาศทั่วไป |
E | อีเวนต์ |
D | ข้อผิดพลาด |
รหัส country_expose_type¶
| รหัส | คำอธิบาย |
|---|---|
null | ไม่มีข้อจำกัด (แสดงในทุกประเทศ) |
W | รายการที่อนุญาต (แสดงเฉพาะประเทศที่รวมอยู่ใน country_codes) |
B | รายการที่ถูกบล็อก (บล็อกสำหรับประเทศที่รวมอยู่ใน country_codes) |
details¶
details คือออบเจกต์ที่มีรหัสภาษาเป็นคีย์ รวมเฉพาะภาษาที่ลงทะเบียนสำหรับประกาศเท่านั้น; ส่งกลับออบเจกต์ว่าง ({}) หากไม่มีข้อมูล
| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
| game_name | string | ชื่อเกม |
| title | string | หัวข้อประกาศ |
| content | string | เนื้อหาประกาศ |
| crop_image | string | URL รูปภาพที่ตัด |
รหัสภาษาที่รองรับ¶
| รหัส | ภาษา |
|---|---|
ko | ภาษาเกาหลี |
en | ภาษาอังกฤษ |
ja | ภาษาญี่ปุ่น |
zh-hans | ภาษาจีนตัวย่อ |
zh-hant | ภาษาจีนตัวเต็ม |
de | ภาษาเยอรมัน |
fr | ภาษาฝรั่งเศส |
ru | ภาษารัสเซีย |
es | ภาษาสเปน |
pt | ภาษาโปรตุเกส |
id | ภาษาอินโดนีเซีย |
th | ภาษาไทย |
vi | ภาษาเวียดนาม |
it | ภาษาอิตาลี |
tr | ภาษาตุรกี |
ar | ภาษาอาหรับ |
game_servers¶
- รายการ ID เซิร์ฟเวอร์เกม ส่งกลับอาร์เรย์ว่าง (
[]) หากไม่มีข้อมูล - ตัวอย่าง:
["server1", "server2", "server3"]
country_codes¶
- รายการรหัสประเทศ ส่งกลับอาร์เรย์ว่าง (
[]) หากไม่มีข้อมูล - ตัวอย่าง:
["KR", "US", "JP"] - อ้างอิง: มาตรฐาน ISO 3166