Skip to content

me.virmesh.social.listIncomingFriendRequests

自分宛ての pending friend request 一覧を取得します。

from 宛てに送られてきた pending friend request を返す private action です。 response では sender 署名付き friend request object の配列を payload.requests に返し、 続きがある場合だけ payload.nextCursor も返します。 初回取得では payload.cursor を省略し、続き取得では前回 response の payload.nextCursor を 次回 request の payload.cursor にそのまま渡します。payload.limit を指定した場合は 1 ページあたりの返却上限として扱います。 top-level の signature は canonical JSON of { action, from, payload } に対して作成します。 tombstone 化済み account が関与する pending request は保持されますが、この一覧には返しません。from 自体が tombstone 化済みなら拒否します。

draft

Endpoint

Method
POST
Path
/private/me.virmesh.social.listIncomingFriendRequests
Auth
required
Host
VirMesh.PlayerServer

Request schema

fromstringRequired

一覧取得対象の player identifier です。

payloadobjectRequired

ページング指定を含む object です。cursor を省略した場合は先頭ページを返します。

payload.cursorstringOptional

続き取得に使う opaque cursor です。前回 response の payload.nextCursor を渡します。

payload.limitintegerOptional

1 ページあたりの返却上限です。server 実装に応じて既定値や上限が適用される場合があります。

signaturestringRequired

canonical JSON of { action, from, payload } に対する署名です。

Request example

{
  "from": "medi:player:ed25519:receiver-public-key",
  "payload": {
    "limit": 20
  },
  "signature": "base64-signature-for-action-envelope"
}

Responses

200
status+me.virmesh.success.incomingFriendRequestsListed

自分宛ての pending friend request 一覧が取得できたことを示します。

Response body

payload.requestsfriendRequest[]Required

自分宛ての pending friend request object 一覧です。

References obj+me.virmesh.social.friendRequest : future `friendPayload` を固定した sender 署名付き friend request object です。

senderstringRequired

フレンドリクエスト送信者の player identifier です。

requestTostringRequired

フレンドリクエスト受信者の player identifier です。

friendPayload.playerAstringRequired

future friend object における sender の player identifier です。

friendPayload.playerBstringRequired

future friend object における receiver の player identifier です。

senderSignaturestringRequired

canonical JSON of friendPayload に対する sender の署名です。

payload.nextCursorstringOptional

次ページがある場合のみ返る opaque cursor です。次回 request の payload.cursor に渡します。

Response example

{
  "status": "status+me.virmesh.success.incomingFriendRequestsListed",
  "payload": {
    "requests": [
      {
        "sender": "medi:player:ed25519:sender-public-key",
        "requestTo": "medi:player:ed25519:receiver-public-key",
        "friendPayload": {
          "playerA": "medi:player:ed25519:sender-public-key",
          "playerB": "medi:player:ed25519:receiver-public-key"
        },
        "senderSignature": "base64-signature-by-sender"
      }
    ],
    "nextCursor": "opaque-incoming-requests-cursor"
  }
}

me.virmesh.social.listIncomingFriendRequests が正常終了し、 自分宛ての pending friend request object 一覧を返したときに返ります。

400
status+me.virmesh.json.invalid_json

request body が JSON として解釈できないことを示します。

この status は body が壊れている、または JSON parser が受理できない形式で送られた場合に返ります。

Status payload

payload.messagestringRequired

実装依存の詳細メッセージです。

malformed json

{
  "status": "status+me.virmesh.json.invalid_json",
  "payload": {
    "message": "Request body must be valid JSON."
  }
}
400
status+me.virmesh.json.invalid_private_request

private request envelope の形式が不正であることを示します。

この status は private route が期待する from, payload, signature などの envelope 要件を満たさない場合に返ります。

Status payload

payload.messagestringRequired

実装依存の詳細メッセージです。

invalid private envelope

{
  "status": "status+me.virmesh.json.invalid_private_request",
  "payload": {
    "message": "Private request must contain the expected envelope fields."
  }
}
400
status+me.virmesh.json.unexpected_fields

許可されていない field が request に含まれていることを示します。

この status は strict validation が有効な route に未知の top-level field または payload field を送った場合に返ります。

Status payload

payload.messagestringRequired

実装依存の詳細メッセージです。

unexpected request fields

{
  "status": "status+me.virmesh.json.unexpected_fields",
  "payload": {
    "message": "Request contains unknown fields that are not allowed by this route."
  }
}
400
status+me.virmesh.json.invalid_payload

`payload`がactionの期待する形式ではないことを示します。

リクエストデータ自体はJSON objectとして解釈できたものの、 期待する形式と一致しない場合に使います。

Status payload

payload.messagestringRequired

検証に失敗した理由を表す詳細メッセージです。

invalid payload

{
  "status": "status+me.virmesh.json.invalid_payload",
  "payload": {
    "message": "送信されたペイロードが正しい形式ではありません。"
  }
}
401
status+me.virmesh.key.invalid_signature

署名の形式が不正、または署名検証に失敗したことを示します。

この status は署名文字列が base64 として不正な場合と、 復元できた署名が検証に失敗した場合に使われます。

Status payload

payload.messagestringRequired

実装依存の詳細メッセージです。

signature verification failed

{
  "status": "status+me.virmesh.key.invalid_signature",
  "payload": {
    "message": "Signature verification failed."
  }
}
410
status+me.virmesh.account.disabled

対象 account が tombstone 化済みであり、有効な主体または参照先として扱えないことを示します。

この status は account が disable 済みで、以後の更新、social 操作、migration、 公開 profile / handle 解決の対象として受理されない場合に返ります。 通常は HTTP 410 Gone と組み合わせて返します。

Status payload

payload.messagestringRequired

実装依存の詳細メッセージです。

account disabled

{
  "status": "status+me.virmesh.account.disabled",
  "payload": {
    "message": "The requested account has been disabled and tombstoned."
  }
}
501
status+me.virmesh.action.not_supported

要求した action が現在の server では利用できないことを示します。

指定されたactionがサーバー上で無効化されており、使用できないことを示します。

Status payload

payload.messagestringRequired

実装依存の詳細メッセージです。

action is disabled

{
  "status": "status+me.virmesh.action.not_supported",
  "payload": {
    "message": "registerAccountKeyによる登録がサポートされていません。"
  }
}