方法:recall.linkPersona

将提供的 Recall 会话 ID 中编码的 PGS 玩家主体与游戏内账号关联

HTTP 请求

POST https://games.googleapis.com/games/v1/recall:linkPersona

请求正文

请求正文包含以下结构的数据

JSON 表示
{
  "sessionId": string,
  "persona": string,
  "token": string,
  "cardinalityConstraint": enum (RecallTokensCardinalityConstraint),
  "conflictingLinksResolutionPolicy": enum (ConflictingLinksResolutionPolicy),

  // Union field expiration can be only one of the following:
  "expireTime": string,
  "ttl": string
  // End of list of possible types for union field expiration.
}
字段
sessionId

string

必需。不透明的服务器生成字符串,编码了识别 PGS 玩家/Google 用户和应用所需的所有必要信息。

persona

string

必需。游戏内账号的稳定标识符。请勿在不同游戏重复使用相同的 persona。

token

string

必需。要创建的令牌的值。对 Play Games 是不透明的,并假定不稳定(使用密钥轮换加密)。

cardinalityConstraint

枚举 (RecallTokensCardinalityConstraint)

必需。在游戏范围内将 persona 关联到玩家时需要遵守的基数约束。

联合字段 expiration。可选的令牌过期时间或存活时间。expiration 只能是以下值之一
expireTime

string(时间戳格式)

仅输入。可选的过期时间。

采用 RFC3339 UTC“Zulu”格式的时间戳,具有纳秒分辨率和最多九位小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

ttl

string(时长格式)

仅输入。可选的存活时间。

时长(秒),最多九位小数位,以“s”结尾。示例:"3.5s"

响应正文

Persona 关联尝试的结果。

如果成功,响应正文包含以下结构的数据

JSON 表示
{
  "state": enum (State)
}
字段
state

枚举 (状态)

仅输出。Persona 关联尝试的状态。

授权范围

需要以下 OAuth 范围

  • https://www.googleapis.com/auth/androidpublisher

如需了解详情,请参阅 OAuth 2.0 概览

RecallTokensCardinalityConstraint

在游戏范围内将 persona 关联到玩家时需要遵守的基数约束。

枚举
ONE_PERSONA_TO_ONE_PLAYER

游戏内 persona 与 Play Games Services 玩家之间的 1:1 基数。

在关联操作结束时,应用范围内对于玩家和 persona 只能保留一个条目。

指定此约束时是否创建新关联由所选的 ConflictingLinksResolutionPolicy 决定

  • 如果指定了 KEEP_EXISTING_LINKS 且提供的 persona 已关联到其他玩家,或者玩家已关联到其他 persona,则不会创建新关联,并且已存在的关联将保持不变。

  • 如果指定了 CREATE_NEW_LINK 且提供的 persona 已关联到其他玩家,或者玩家已关联到其他 persona,则旧关联将被移除,以创建新关联。

ConflictingLinksResolutionPolicy

当将 persona 关联到玩家会导致违反指定的基数约束时应用的解决策略。

枚举

状态

Persona 关联尝试的状态。

枚举
PERSONA_OR_PLAYER_ALREADY_LINKED 请求中指定的关联未创建,因为已存在的关联会使新关联(如果创建)违反指定的 RecallTokensCardinalityConstraint