メインコンテンツまでスキップ

Socket Start v2

リクエスト

POST https://api.dmdata.jp/v2/socket

WebSocket v2 に接続する場合、このAPIを利用してアクセスするURLを取得します。

リクエストボディ(JSON)

パラメータ名必須デフォルト説明
classificationsはいArray<String>
WebSocketで取得する配信区分を指定。
緊急地震(予報)区分: eew.forecast
緊急地震(警報)関連区分: eew.warning
緊急地震(リアルタイム)区分: eew.realtime
地震・津波関連区分: telegram.earthquake
火山関連区分: telegram.volcano
気象警報・注意報関連区分: telegram.weather
定時関連区分: telegram.scheduled
typesいいえArray<String>
取得したいデータ種類コードを指定。最大30個まで指定可能
testいいえnoString
テスト電文を受け取るか指定。受け取る場合は including にする。
注意:XML電文以外のテスト配信は no 時も配信されます。本文中を参照するようにしてください。
appNameいいえString
アプリケーション名を指定。最大24バイトまで
formatModeいいえrawString
データフォーマットの指定。生電文: raw、JSON化データ: json

例:

{
"classifications": [
"telegram.earthquake",
"telegram.weather"
],
"types": [
"VXSE51",
"VXSE52",
"VXSE53",
"VPWW54"
],
"test": "no",
"appName": "Application Test"
}

APIに必要な権限

  • socket.start
  • eew.get.forecast (配信区分によっては必要)
  • eew.get.warning (配信区分によっては必要)
  • eew.get.realtime (取得情報によっては必要)
  • telegram.get.earthquake (配信区分によっては必要)
  • telegram.get.volcano (配信区分によっては必要)
  • telegram.get.weather (配信区分によっては必要)
  • telegram.get.scheduled (配信区分によっては必要)

レスポンス

APIは常にJSONを返答します。

status: ok

成功時に次のような内容を返答します。

{
"responseId": "83c36173ceaf9e44",
"responseTime": "2021-04-01T00:00:00.000Z",
"status": "ok",
"ticket": "Tik....",
"websocket": {
"id": 0,
"url": "wss://ws003.api.dmdata.jp/v2/websocket?ticket=Tik....",
"protocol": [
"dmdata.v2"
],
"expiration": 300
},
"classifications": [
"telegram.weather",
"telegram.earthquake"
],
"test": "no",
"types": [
"VXSE51",
"VXSE52",
"VXSE53",
"VPWW54"
],
"formats": [
"xml",
"a/n",
"binary"
],
"appName": "Application Test"
}
フィールド出現説明
responseIdいつもString
API処理ID
responseTimeいつもISO8601Time
API処理時刻
statusいつもString
成功時は ok、失敗時(エラー)は error
ticketいつもString
WebSocketに接続するためのticket
websocketいつもObject
WebSocketへの接続情報
websocket.idいつもInteger
WebSocketID
websocket.urlいつもString
WebSocketの接続先URLでticket付き
websocket.protocolいつもArray<String>
WebSocketのProtocolで配列の要素は dmdata.v2 一つで固定
websocket.expirationいつもInteger
キーの有効時間で単位は秒。値は 300 で固定
classificationsいつもArray<String>
WebSocketで受け取る配信区分
testいつもString
including の時のみ、XML電文のテストをWebsocketで受け取る
typesいつもArray<String>|Null
WebSocketで受け取るデータ種類コードリスト。Null 時は受け取る配信区分の全部を受け取る
formatsいつもArray<String>
WebSocketで受け取る情報フォーマット
appNameいつもString|Null
リクエストで指定したアプリ名

status: error

APIは各種エラーを次の通り返答します。

{
"responseId": "66d23c0cede77d82",
"responseTime": "2021-04-01T00:00:00.000Z",
"status": "error",
"error": {
"message": "The body of the request is not json.",
"code": 400
}
}
フィールド出現説明
errorいつもObject
エラー情報。
error.messageいつもString
エラーメッセージ、標準エラーおよび別表参照
error.codeいつもInteger
HTTPステータスコード

標準エラー以外に以下のエラーを出力します。

ステータスコードエラーメッセージ説明
400The body of the request is not json.リクエストボディにJSON形式のデータがない
400At least one element of `classifications` is required.配信区分が指定されていない
400The `types` is not a string or has more than 30 elements.データ種類コードに不正な文字列があるか、30個以上指定されている
400The `appName` is up to 24 bytes.appNameに文字列でないか、24バイト以上の文字列が入力されている
400You have entered a string that is not defined in `formatMode`.formatModeにrawかjson以外が指定されている
402No contract.有効な契約がない
409The maximum number of simultaneous connections is full.アカウントの有効な接続数に達して新たにWebSocketに接続できない