コンテンツにスキップ
コンソール

クイックスタート

このページでは、最小の手順で ExpTech API を呼び出します。まず認証の不要な HTTP API を呼び出し、次に API Token を作成し、最後にリアルタイム配信を開きます。利用前に利用ルールと利用規約をお読みください。

  1. 最初の API を呼ぶ

    地震情報は、現在 token が不要です。次の例は、中央気象署(CWA)の地震情報を直近 5 件取得します。

    ターミナルウィンドウ
    curl -sL "https://api.core.exptech.dev/api/v2/eq/report?limit=5"
    const res = await fetch("https://api.core.exptech.dev/api/v2/eq/report?limit=5");
    if (!res.ok) throw new Error(`HTTP ${res.status}`);
    const reports = await res.json();
    console.log(reports[0].loc, reports[0].mag);

    レスポンスは JSON 配列で、各要素が 1 件の地震情報です。フィールドの説明は地震情報を参照してください。

    他の host とノードはサーバーと Base URLを参照してください。本番運用の前に、そのページの手順でクライアント側に予備の host を用意することを推奨します。

  2. API Token を作成する

    認証が必要な API と、利用量を記録する配信では API Token を使います。

    • https://manager.exptech.com.tw/login にログインします(メールアドレスを入力し、届いたメールのログインリンクを開きます)。
    • ダッシュボードの API Token ページで、権限を選んで作成します。
    • Token は一度しか表示されません。 すぐに保存してください。形式は et_ で始まる文字列です。

    権限の意味は権限、付け方と取り消しは API Token を参照してください。

  3. リアルタイム配信を開く

    リアルタイムデータは SSE(Server-Sent Events)で送ります。次の例は地震情報の配信 eq.report.v1 に接続します。新しい地震情報があると、サーバーがメッセージを送ります。

    ターミナルウィンドウ
    curl -N -H "Authorization: Bearer et_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
    "https://api.lb.exptech.dev/api/v1/trem/sse/report"

    ブラウザの EventSource は header を付けられないため、token は query に置きます。各データは gzip 圧縮したあと base64 で符号化されているので、先に復号します。

    const token = "et_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    const es = new EventSource(
    `https://api.lb.exptech.dev/api/v1/trem/sse/report?token=${encodeURIComponent(token)}`,
    );
    async function decode(base64) {
    const bytes = Uint8Array.from(atob(base64), (c) => c.charCodeAt(0));
    const stream = new Blob([bytes]).stream().pipeThrough(new DecompressionStream("gzip"));
    return JSON.parse(await new Response(stream).text());
    }
    es.onmessage = async (event) => {
    console.log(await decode(event.data));
    };

    eq.report.v1 は公開 topic なので、token なしでも接続できます。token を付けると、利用量はあなたのアカウントに計上され、ダッシュボードの利用量で確認できます。権限が必要な topic では、token に対応する権限があり、かつアカウントがダッシュボードのサブスクリプションでそのリソースを購読している必要があります。そうでない場合は拒否されます。サブスクリプションとクォータの計算は利用量とクォータを参照してください。

    接続開始時の event: info、60 秒ごとのハートビート、複数の topic を 1 本の接続で共有する書き方と再接続の方法は、リアルタイム配信を参照してください。

  4. 次のステップ