Method: gameStats.batchRecordEvents

บันทึกเหตุการณ์เกมของผู้เล่นเป็นกลุ่มสำหรับผู้เล่นที่เฉพาะเจาะจง วิธีนี้ช่วยให้ส่งเหตุการณ์หลายรายการได้ในคำขอเดียว

คำขอ HTTP

POST https://games.googleapis.com/games/v1/players/{playerId}/gameStats:batchRecordEvents

พารามิเตอร์เส้นทาง

พารามิเตอร์
playerId

string

ต้องระบุ: รหัสผู้เล่นของผู้เล่นที่ทำเหตุการณ์

เนื้อหาคำขอ

เนื้อหาของคำขอมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

การแสดง JSON
{
  "packageName": string,
  "requestTime": string,
  "events": [
    {
      object (PlayerGameEvent)
    }
  ],
}
ทุ่ง
packageName

string

ต้องระบุ: ชื่อแพ็กเกจแอปพลิเคชัน (เช่น "com.example.game")

requestTime

string (Timestamp format)

ต้องระบุ: เวลาจากไคลเอ็นต์เมื่อมีการส่งชุดเหตุการณ์ที่เฉพาะเจาะจงนี้

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย ตัวอย่าง: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

events[]

object (PlayerGameEvent)

ต้องระบุ: รายการเหตุการณ์เกมของผู้เล่นที่จะบันทึก เหตุการณ์สูงสุด 30 รายการต่อคำขอแบบกลุ่ม

เนื้อหาการตอบกลับ

การตอบกลับที่สำเร็จจะบ่งบอกว่าระบบได้ประมวลผลเหตุการณ์แบบกลุ่มแล้ว

หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

การแสดง JSON
{
  "failedRequests": {
    integer: {
      object (Status)
    },
    ...
  }
}
ทุ่ง
failedRequests

map (key: integer, value: object (Status))

แผนผังของเหตุการณ์ที่ล้มเหลว โดยใช้ดัชนีที่อิงตาม 0 ใน BatchRecordEventsRequest.events เป็นคีย์ คีย์ที่ละไว้จะบ่งบอกว่าบันทึกสำเร็จ

ออบเจ็กต์ที่มีรายการคู่ "key": value ตัวอย่าง: { "name": "wrench", "mass": "1.3kg", "count": "3" }

ขอบเขตการให้สิทธิ์

ต้องใช้ขอบเขต OAuth อย่างใดอย่างหนึ่งต่อไปนี้

  • https://www.googleapis.com/auth/games
  • https://www.googleapis.com/auth/games_lite

ดูข้อมูลเพิ่มเติมได้ที่ OAuth 2.0 Overview.

PlayerGameEvent

การแสดงเหตุการณ์เกมของผู้เล่นคนเดียวที่ทริกเกอร์โดยเหตุการณ์ของผู้เล่นในเกม ซึ่งอาจเป็นการผ่านด่าน ปลดล็อกไอเทม หรือจบแมตช์

การแสดง JSON
{
  "eventId": string,
  "eventName": string,
  "eventProperties": {
    string: {
      object (PropertyValue)
    },
    ...
  },
  "eventTime": string
}
ทุ่ง
eventId

string

ต้องระบุ: UUID ที่ไม่ซ้ำกันซึ่งไคลเอ็นต์สร้างขึ้นสำหรับอินสแตนซ์เหตุการณ์ที่เฉพาะเจาะจงนี้ ใช้สำหรับการทำซ้ำได้และการกรองข้อมูลที่ซ้ำกันออกฝั่งเซิร์ฟเวอร์ ระบบจะละเว้นการส่งเหตุการณ์ที่มี eventId ที่บันทึกไว้ก่อนหน้านี้สำหรับผู้เล่นคนเดียวกัน

eventName

string

ต้องระบุ: ชื่อเหตุการณ์ที่ไคลเอ็นต์กำหนด (เช่น "run_completed", "level_up") จำกัดความยาวสูงสุด 100 อักขระ

eventProperties

map (key: string, value: object (PropertyValue))

ไม่บังคับ: พร็อพเพอร์ตี้แบบคีย์-ค่าที่ให้รายละเอียดเกี่ยวกับเหตุการณ์ - จำนวนพร็อพเพอร์ตี้สูงสุด: 25 - ความยาวสูงสุดของคีย์พร็อพเพอร์ตี้: 100 อักขระ - ความยาวสูงสุดของค่าสตริงภายใน PropertyValue: 1024 อักขระ

ออบเจ็กต์ที่มีรายการคู่ "key": value ตัวอย่าง: { "name": "wrench", "mass": "1.3kg", "count": "3" }

eventTime

string (Timestamp format)

ต้องระบุ: เวลาจากไคลเอ็นต์เมื่อมีการทำเหตุการณ์ที่เฉพาะเจาะจงนี้

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย ตัวอย่าง: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

PropertyValue

Wrapper สำหรับค่า

การแสดง JSON
{

  // Union field value can be only one of the following:
  "intValue": string,
  "doubleValue": number,
  "stringValue": string,
  "boolValue": boolean,
  // End of list of possible types for union field value.
}
ทุ่ง
ฟิลด์ Union value ค่าของสเกลาร์ value จะเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
intValue

string (int64 format)

ค่าจำนวนเต็ม

doubleValue

number

ค่า Double

stringValue

string

ค่าสตริง

boolValue

boolean

ค่าบูลีน

สถานะ

ประเภท Status จะกำหนดรูปแบบข้อผิดพลาดเชิงตรรกะที่เหมาะกับสภาพแวดล้อมการเขียนโปรแกรมต่างๆ รวมถึง REST API และ RPC API โดย gRPC จะใช้พอร์ตนี้ ข้อความ Status แต่ละข้อความจะมีข้อมูล 3 ส่วน ได้แก่ รหัสข้อผิดพลาด ข้อความแสดงข้อผิดพลาด และรายละเอียดข้อผิดพลาด

ดูข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบข้อผิดพลาดนี้และวิธีใช้งานได้ในคู่มือการออกแบบ API

การแสดง JSON
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
ทุ่ง
code

integer

รหัสสถานะซึ่งควรเป็นค่า enum ของ google.rpc.Code

message

string

ข้อความแสดงข้อผิดพลาดที่ส่งถึงนักพัฒนาแอป ซึ่งควรเป็นภาษาอังกฤษ ข้อความแสดงข้อผิดพลาดที่ผู้ใช้เห็นควรได้รับการแปลและส่งในช่อง google.rpc.Status.details หรือแปลโดยไคลเอ็นต์

details[]

object

รายการข้อความที่มีรายละเอียดข้อผิดพลาด API มีชุดประเภทข้อความทั่วไปให้ใช้

ออบเจ็กต์ที่มีฟิลด์ประเภทใดก็ได้ ฟิลด์เพิ่มเติม "@type" มี URI ที่ระบุประเภท ตัวอย่าง: { "id": 1234, "@type": "types.example.com/standard/id" }