Skip to content

status+me.virmesh.success.playerProfileResolved

公開プロフィールが解決されたことを示します。

successdraft

Description

me.virmesh.player.resolveProfile が正常終了したときに返ります。 この 200 response は shared status envelope ではなく、 handle record と profile module payload 群を対象 player 本人の鍵で個別署名した profile response をそのまま返します。

When this happens

  • 対象 player または handle が見つかる
  • 公開プロフィールに必要な情報が揃っている

Payload

payloadplayerProfileRequired

解決された公開プロフィール payload です。top-level の response 署名は持たず、payload.handle.recordpayload.modules.*.payload をそれぞれ個別署名で返します。

References obj+me.virmesh.player.profile : player の公開プロフィール object です。

handle.recordhandleRecordRequired

current handle record payload です。

References obj+me.virmesh.handle.record : player に紐づく current handle record です。

idstringRequired

handle owner の player identifier です。

primaryHandlestringRequired

player の canonical primary handle です。

secondaryHandlesstring[]Required

同一 player に解決される secondary handle 一覧です。

playerServerstringRequired

player を管理する PlayerServer の absolute URL です。

updated_atintegerRequired

この handle record payload を生成した時刻です。epoch second を返します。

handle.signaturestringRequired

canonical JSON of handle.record に対する、対象 player 本人の署名です。

modules.profile+me.virmesh.player.displayName.payloadplayerDisplayNameRequired

公開プロフィールの必須 displayName module payload です。

References profile+me.virmesh.player.displayName : player の必須 profile displayName module payload です。

modulestringRequired

常に profile+me.virmesh.player.displayName を返します。

idstringRequired

module owner の player identifier です。

displayNamestringRequired

PlayerServer が保持する公開 display name です。

updated_atintegerRequired

この module payload を生成した時刻です。epoch second を返します。

modules.profile+me.virmesh.player.displayName.signaturestringRequired

canonical JSON of modules.profile+me.virmesh.player.displayName.payload に対する、対象 player 本人の署名です。

modules.profile+me.virmesh.player.card.payloadplayerProfileCardOptional

bioimage を持つ optional profile card module payload です。

References profile+me.virmesh.player.card : player の optional profile card module payload です。

modulestringRequired

常に profile+me.virmesh.player.card を返します。

idstringRequired

module owner の player identifier です。

biostringOptional

plain text の自己紹介文です。

imageplayerProfileImageOptional

PlayerServer 内の immutable image asset を指す参照 object です。

References obj+me.virmesh.player.profileImage : PlayerServer 内に保存された公開プロフィール画像を指す参照 object です。

assetIdstringRequired

PlayerServer 内の immutable profile image asset identifier です。

contentTypestringRequired

画像の HTTP content type です。v1 は image/png または image/jpeg を使います。

hashstringRequired

画像 body hash です。v1 は sha256:<base64url> を使います。

widthintegerRequired

画像の pixel width です。

heightintegerRequired

画像の pixel height です。

sizeintegerRequired

画像 body の byte size です。

updated_atintegerRequired

この module payload を生成した時刻です。epoch second を返します。

modules.profile+me.virmesh.player.card.signaturestringOptional

canonical JSON of modules.profile+me.virmesh.player.card.payload に対する、対象 player 本人の署名です。

Examples

resolved public profile

{
  "payload": {
    "handle": {
      "record": {
        "id": "medi:player:ed25519:base64-public-key",
        "primaryHandle": "alice@virmesh.me",
        "secondaryHandles": [
          "alice@example.com"
        ],
        "playerServer": "https://ps.example.com/",
        "updated_at": 1770000100
      },
      "signature": "base64-signature-by-player-for-handle-record"
    },
    "modules": {
      "profile+me.virmesh.player.displayName": {
        "payload": {
          "module": "profile+me.virmesh.player.displayName",
          "id": "medi:player:ed25519:base64-public-key",
          "displayName": "Alice",
          "updated_at": 1770000200
        },
        "signature": "base64-signature-by-player-for-display-name-module"
      },
      "profile+me.virmesh.player.card": {
        "payload": {
          "module": "profile+me.virmesh.player.card",
          "id": "medi:player:ed25519:base64-public-key",
          "bio": "VR world builder",
          "image": {
            "assetId": "profimg_123",
            "contentType": "image/png",
            "hash": "sha256:base64url-hash",
            "width": 512,
            "height": 512,
            "size": 42000
          },
          "updated_at": 1770000300
        },
        "signature": "base64-signature-by-player-for-profile-card-module"
      }
    }
  }
}

Client handling

  • payload.handle.recordpayload.handle.signature と合わせて検証してから使う
  • payload.modules.profile+me.virmesh.player.displayName.payload を対応する signature と合わせて検証してから使う
  • optional module がある場合も payload.modules.*.payload.idpayload.handle.record.id と一致することを確認してから 1 つの公開プロフィールとして扱う

Related statuses

Referenced by

HTTPAPIAction
200me.virmesh.player.resolveProfileme.virmesh.player.resolveProfile