Skip to content
This repository has been archived by the owner on Jun 20, 2024. It is now read-only.

api docs (ja) of Streaming APIs

Marihachi edited this page Nov 23, 2018 · 36 revisions
Frost-API v1.0の仕様に合わせて内容の変更が進行中です。v1.0以前の仕様とは互換性はありません。

Streaming APIs


目次


WebSocketプロトコルに従って接続します。
wss://(APIサーバのドメイン名)?access_token=(AccessToken) に接続してください。

やり取りされるデータ(イベントオブジェクト)のフォーマットについて

Streaming APIsは、JSONオブジェクトをWebSocketのUTF-8メッセージとしてやり取りすることによって利用されます。
やり取りされるJSONオブジェクトは、必ず以下の2つのメンバを含んでいる必要があります

メンバ名 説明
event 利用するAPIに関連付いたイベント名を指定します。(イベント名 と呼ばれます)
data APIの利用に必要なデータを指定します。(イベントデータ と呼ばれます)

Streaming APIsではこのオブジェクトのことを「イベントオブジェクト」と呼んでいます。

イベントオブジェクトの例

{
  "event": "イベント名",
  "data": {
    "イベントデータA": "value"
  }
}

Request API

各エンドポイントへのリクエストをWebSocketのコネクション上から行えるようにするAPIです。
HTTPリクエストがその都度発生しないため、オーバーヘッドを小さくすることが出来ます。

エンドポイントにリクエストする

イベント名

request

イベントデータの構造(リクエスト)

{
  id: number | string,
  endpoint: string,
  params: object?
}

イベントデータの構造(レスポンス)

{
  id: number | string,
  success: boolean,
  statusCode: number,
  resource: any?
}

idプロパティはnumber型もしくはstring型である必要がありますが、number型として渡された数値は整数であるべきです。小数を含む数値を指定することは推奨されません。

リクエスト
{
  "event":"request",
  "data": {
    "endpoint":"/posting/create-chat",
    "params": {
        "text": "コーヒー1杯で1回です"
    },
    "id": "3"
  }
}
レスポンス
{
  "event": "request",
  "data": {
    "id": "3",
    "success": true,
    "statusCode": 200,
    "resource": {
      "chatPosting": {
        "createdAt": 1542525441,
        "id": "5bf1120154d6cf2a485bcb6e",
        "text": "コーヒー1杯で1回です",
        "type": "chat",
        "user": {
          "createdAt": 1500702964,
          "description": "コーヒーが好きです",
          "followersCount": 7,
          "followingsCount": 16,
          "iconFileId": "5a813952bf8f203120a6b189",
          "id": "5972e8f4d61aea367cbf6972",
          "name": "香風智乃",
          "postsCount": {
            "status": 252
          },
          "screenName": "chino123"
        },
        "userId": "5972e8f4d61aea367cbf6972"
      }
    }
  }
}

EventStream API

リアルタイムにタイムラインや通知を受信するためのAPIです。

sourceNameに指定できる値
  • "homeTimeline"
  • "notification" (comming soon)

イベントストリームを購読する

イベント名

eventStream.subscribe

イベントデータの構造(リクエスト時)

{
  id: number | string,
  sourceName: string
}

イベントデータの構造(レスポンス時)

{
  id: number | string,
  success: boolean,
  message: string?,
  error: {message: string}?
}

idプロパティはnumber型もしくはstring型である必要がありますが、number型として渡された数値は整数であるべきです。小数を含む数値を指定することは推奨されません。

sourceNameに指定できる値についてはこちらを参照してください。

リクエスト
{
  "event": "eventStream.subscribe",
  "data": {
    "id": "1",
    "sourceName": "homeTimeline"
  }
}
レスポンス
{
  "event": "eventStream.subscribe",
  "data": {
    "id": "1",
    "success": true,
    "message": "subscribed home timeline"
  }
}

イベントストリームを購読解除する

イベント名

eventStream.unubscribe

イベントデータの構造(リクエスト時)

{
  id: number | string,
  sourceName: string
}

イベントデータの構造(レスポンス時)

{
  id: number | string,
  success: boolean,
  message: string?,
  error: {message: string}?
}

idプロパティはnumber型もしくはstring型である必要がありますが、number型として渡された数値は整数であるべきです。小数を含む数値を指定することは推奨されません。

sourceNameに指定できる値についてはこちらを参照してください。

リクエスト
{
  "event": "eventStream.unsubscribe",
  "data": {
    "id": "2",
    "sourceName": "homeTimeline"
  }
}
レスポンス
{
  "event": "eventStream.unsubscribe",
  "data": {
    "success": true,
    "id": "2",
    "message": "unsubscribed home timeline"
  }
}

[執筆中]

Clone this wiki locally