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
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "intValue": string,
  "doubleValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "durationValue": string
}
ทุ่ง
ค่าของสเกลาร์ ต่อไปนี้คือรายการฟิลด์ที่แยกกัน ระบบจะตั้งค่าช่องใดช่องหนึ่งต่อไปนี้ในการตอบกลับ
intValue

string (int64 format)

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

doubleValue

number

ค่า Double

stringValue

string

ค่าสตริง

boolValue

boolean

ค่าบูลีน

durationValue

string (Duration format)

ค่าระยะเวลา

ระยะเวลาเป็นวินาทีโดยมีตัวเลขเศษส่วนได้สูงสุด 9 หลัก และลงท้ายด้วย "s" ตัวอย่าง: "3.5s"

สิ้นสุดฟิลด์ที่แยกกัน

สถานะ

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" }