v2.0.0: module path /v2, quest slugs, per-environment admin keys, regenerated models
CI / build (push) Successful in 12s
CI / build (push) Successful in 12s
Claude-Session: https://claude.ai/code/session_01SMCvdwDmuxoaqGgvGBLk1V
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
|
||||
```bash
|
||||
go env -w GOPRIVATE=hub.rudder.build/*
|
||||
go get hub.rudder.build/rudder/rudder-go-sdk@latest
|
||||
go get hub.rudder.build/rudder/rudder-go-sdk/v2@latest
|
||||
```
|
||||
|
||||
Требуется Go 1.21+. Токен не нужен — репозиторий публичный.
|
||||
@@ -18,15 +18,18 @@ go get hub.rudder.build/rudder/rudder-go-sdk@latest
|
||||
## Версионирование
|
||||
|
||||
Потребители фиксируют версию по git-тегу
|
||||
(`go get hub.rudder.build/rudder/rudder-go-sdk@vX.Y.Z`). Первый тег `v0.1.0`
|
||||
будет создан при релизе; до него версионирования нет.
|
||||
(`go get hub.rudder.build/rudder/rudder-go-sdk/v2@vX.Y.Z`). Текущая мажорная
|
||||
версия — `v2`, поэтому путь модуля содержит суффикс `/v2`, а импорты идут
|
||||
через `hub.rudder.build/rudder/rudder-go-sdk/v2`.
|
||||
|
||||
## Доступ
|
||||
|
||||
`AdminKey` — это per-project Admin Key: поле «Admin Key» в настройках проекта
|
||||
в дашборде (app.rudder.build → проект → Settings). Ключ сам определяет
|
||||
проект, отдельный project ID не нужен. Храните его только на сервере —
|
||||
никогда не вшивайте в игровые клиенты.
|
||||
`AdminKey` — это Admin Key окружения: у проекта их два, для `staging` и для
|
||||
`prod` (app.rudder.build → проект → Settings → Environments). Ключ сам
|
||||
определяет и проект, и окружение, поэтому ни project ID, ни параметр
|
||||
окружения передавать не нужно; игроки и контент разных окружений полностью
|
||||
изолированы. Храните ключ только на сервере — никогда не вшивайте в игровые
|
||||
клиенты.
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -76,7 +79,7 @@ updated, err := player.Storage().Upsert(ctx, rudder.UpsertPlayerStorageParameter
|
||||
err = player.Storage().Delete(ctx, rudder.DeletePlayerStorageParameters{Type: "settings"})
|
||||
|
||||
quests, err := player.Quests().List(ctx)
|
||||
err = player.Quests().Reset(ctx, rudder.PlayerQuestParameters{QuestID: "daily-1"})
|
||||
err = player.Quests().Reset(ctx, rudder.PlayerQuestParameters{QuestSlug: "daily-1"})
|
||||
// ForceComplete и ForceClaim — аналогично
|
||||
|
||||
updatedPlayer, err := player.Update(ctx, rudder.UpdatePlayerParameters{Nickname: "Neo"})
|
||||
@@ -145,12 +148,12 @@ err = client.Players.Delete(ctx, rudder.DeletePlayersParameters{
|
||||
## Верификация авторизации
|
||||
|
||||
`Players.VerifyAuth` — одиночный (не batch) вызов `POST /players/auth/verify`:
|
||||
проверяет access token игрока и возвращает `playerId`, `projectId` и `status`
|
||||
(`active`/`banned`/`deleted`).
|
||||
проверяет access token игрока и возвращает `playerId`, `projectId`,
|
||||
`environment` (`staging`/`prod`) и `status` (`active`/`banned`/`deleted`).
|
||||
|
||||
```go
|
||||
verification, err := client.Players.VerifyAuth(ctx, accessToken)
|
||||
// verification.PlayerID, verification.ProjectID, verification.Status
|
||||
// verification.PlayerID, verification.ProjectID, verification.Environment, verification.Status
|
||||
```
|
||||
|
||||
`VerifyWebhookSignature` — пакетный хелпер для приёма webhook'ов с подписью
|
||||
@@ -164,7 +167,7 @@ if !rudder.VerifyWebhookSignature(secret, body, r.Header.Get("X-Signature")) {
|
||||
|
||||
err = client.Quests.Reset(ctx, rudder.PlayerQuestsParameters{
|
||||
Items: []rudder.PlayerQuestRef{
|
||||
{PlayerID: "p1", QuestID: "daily-1"},
|
||||
{PlayerID: "p1", QuestSlug: "daily-1"},
|
||||
},
|
||||
})
|
||||
// ForceComplete и ForceClaim — аналогично
|
||||
|
||||
Reference in New Issue
Block a user