Skip to content

me.virmesh.social.listOutgoingFriendRequests

自分が送信した pending friend request 一覧を取得します。

from が sender になっている 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.listOutgoingFriendRequests
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:sender-public-key",
  "payload": {
    "limit": 20
  },
  "signature": "base64-signature-for-action-envelope"
}

Responses

200
status+me.virmesh.success.outgoingFriendRequestsListed

自分が送信した 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.outgoingFriendRequestsListed",
  "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-outgoing-requests-cursor"
  }
}

me.virmesh.social.listOutgoingFriendRequests が正常終了し、 自分が sender になっている 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による登録がサポートされていません。"
  }
}