Method: gameStats.batchRecordEvents

Rejestruje pakiet zdarzeń w grze dotyczących konkretnego gracza. Ta metoda umożliwia wysyłanie wielu zdarzeń w jednym żądaniu.

Żądanie HTTP

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

Parametry ścieżki

Parametry
playerId

string

Wymagane. Identyfikator gracza, który wykonał zdarzenia.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "packageName": string,
  "requestTime": string,
  "events": [
    {
      object (PlayerGameEvent)
    }
  ],
}
Pola
packageName

string

Wymagane. Nazwa pakietu aplikacji (np. „com.example.gra”).

requestTime

string (Timestamp format)

Wymagane. Czas, w którym klient przesłał ten konkretny pakiet zdarzeń.

Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

events[]

object (PlayerGameEvent)

Wymagane. Lista zdarzeń w grze, które mają zostać zarejestrowane. Maksymalnie 30 zdarzeń w żądaniu zbiorczym.

Treść odpowiedzi

Odpowiedź informująca o powodzeniu oznacza, że partia wydarzeń została przetworzona.

W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "failedRequests": {
    integer: {
      object (Status)
    },
    ...
  }
}
Pola
failedRequests

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

Mapa nieudanych zdarzeń, których kluczem jest indeks liczony od zera w BatchRecordEventsRequest.events. Pominięte klucze wskazują, że nagrywanie się powiodło.

Obiekt zawierający listę par "key": value. Przykład: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w sekcji OAuth 2.0 Overview.

PlayerGameEvent

Reprezentacja pojedynczego zdarzenia w grze dla 1 gracza wywołanego przez zdarzenie gracza w grze. Może to być ukończenie poziomu, odblokowanie przedmiotu lub zakończenie meczu.

Zapis JSON
{
  "eventId": string,
  "eventName": string,
  "eventProperties": {
    string: {
      object (PropertyValue)
    },
    ...
  },
  "eventTime": string
}
Pola
eventId

string

Wymagane. Unikalny identyfikator UUID wygenerowany przez klienta dla tej konkretnej instancji zdarzenia. Używany do zapewnienia idempotentności i usuwania duplikatów po stronie serwera. Przesłanie zdarzenia z wcześniej zarejestrowanym identyfikatorem eventId dla tego samego odtwarzacza zostanie zignorowane.

eventName

string

Wymagane. Zdefiniowana przez klienta nazwa zdarzenia (np. „run_completed”, „level_up”). Maksymalna długość: 100 znaków.

eventProperties

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

Opcjonalnie: Właściwości klucz-wartość zawierające szczegóły zdarzenia. – Maksymalna liczba usług: 25. – Maksymalna długość klucza właściwości: 100 znaków. – Wartości ciągu znaków w PropertyValue: maksymalna długość to 1024 znaki.

Obiekt zawierający listę par "key": value. Przykład: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

eventTime

string (Timestamp format)

Wymagane. Czas, w którym to konkretne zdarzenie zostało wykonane przez klienta.

Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" lub "2014-10-02T15:01:23+05:30".

PropertyValue

Kontener wartości.

Zapis 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
}
Pola
Wartość skalarna. Poniżej znajduje się lista pól, które się wzajemnie wykluczają. W odpowiedzi zostanie ustawione co najwyżej jedno z tych pól:
intValue

string (int64 format)

Liczba całkowita.

doubleValue

number

Wartość double.

stringValue

string

Wartość w postaci ciągu znaków.

boolValue

boolean

Wartość logiczna.

durationValue

string (Duration format)

Wartość czasu trwania.

Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „s”. Przykład: "3.5s".

Koniec pól wykluczających się nawzajem.

Stan

Typ Status definiuje model błędu logicznego, który jest odpowiedni dla różnych środowisk programistycznych, w tym interfejsów API typu REST i RPC. Jest używany przez gRPC. Każdy komunikat Status zawiera 3 rodzaje danych: kod błędu, komunikat o błędzie i szczegóły błędu.

Więcej informacji o tym modelu błędów i sposobie pracy z nim znajdziesz w przewodniku API Design Guide.

Zapis JSON
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Pola
code

integer

Kod stanu, który powinien być wartością wyliczeniową google.rpc.Code.

message

string

Komunikat o błędzie widoczny dla programisty, który powinien być w języku angielskim. Wszelkie komunikaty o błędach dla użytkowników powinny być zlokalizowane i wysyłane w polu google.rpc.Status.details lub zlokalizowane przez klienta.

details[]

object

Lista wiadomości zawierających szczegóły błędu. Na potrzeby interfejsów API dostępny jest wspólny zestaw typów wiadomości.

Obiekt zawierający pola dowolnego typu. Dodatkowe pole "@type" zawiera identyfikator URI określający typ. Przykład: { "id": 1234, "@type": "types.example.com/standard/id" }.