Skip to content

me.virmesh.register.getChallengeStatus

発行済みの challengeToken に対するチャレンジの進捗・結果を取得します。

me.virmesh.register.startChallenge で得たトークンを渡し、 完了までポーリングします。成功時は status+me.virmesh.challenge.successChallenge を返します。

draft

Endpoint

Method
POST
Path
/public/me.virmesh.register.getChallengeStatus
Auth
none
Host
VirMesh.PlayerServer

Request schema

payload.challengeTokenstringRequired

startChallenge で返却されたチャレンジトークンです。

Request example

{
  "payload": {
    "challengeToken": "opaque-challenge-token"
  }
}

Responses

200
status+me.virmesh.challenge.successChallenge

ポーリング対象のチャレンジが完了し、成功したことを示します。

me.virmesh.register.getChallengeStatus の結果として、 指定した challengeToken に紐づくチャレンジが成功裏に終了したことを示します。

challenge succeeded

{
  "status": "status+me.virmesh.challenge.successChallenge"
}
200
status+me.virmesh.challenge.unfinishedChallenge

チャレンジはまだ完了しておらず、成功または失敗として確定していないことを示します。

me.virmesh.register.getChallengeStatus の結果として、 トークンは有効だが、ユーザー操作や外部検証の待ちなどで **まだ最終結果が出ていない** ことを示します。 これはエラーではなく、クライアントがポーリングを続けるべき状態です。

still in progress

{
  "status": "status+me.virmesh.challenge.unfinishedChallenge"
}
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_payload

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

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

Status payload

payload.messagestringRequired

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

invalid payload

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

指定したチャレンジトークンが不明、失効、または参照できないことを示します。

me.virmesh.register.getChallengeStatus に渡した challengeToken が サーバで解決できないときに返します(未発行、期限切れ、誤りなど)。

Status payload

payload.messagestringOptional

失敗理由の補足メッセージ(実装が付与する場合)。

unknown token

{
  "status": "status+me.virmesh.challenge.unknownChallenge",
  "payload": {
    "message": "チャレンジが見つかりません。"
  }
}