Skip to main content

Data API

概要

本記事では、DATA開発連携に関する内容について説明します。

データAPI認証ログイン

プラットフォームが外部に公開するインターフェースサービス(RESTfulスタイルのHttpサービス)は、すべて認証ログインが必要です。これによりデータの安全性が確保されます。現在サポートされている認証方式は一つのみ:Bearer Tokenです。

連携準備

プラットフォームから client_id と client_secret のペアを取得する必要があります。これはあなたのアプリケーションの一意な識別子であり、access_tokenの取得に使用されます。

認証

client_id と client_secret を取得したら、以下の手順で access_token を取得できます。

ステップ1:署名の生成

署名の生成ルール:client_id + 現在のタイムスタンプ + client_secret を連結し、MD5で暗号化します。暗号化後の32桁大文字の文字列が署名文字列となります。

  • 署名生成例:

      <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>
    <script>
    const client = "入力した client_id"
    const secret = "入力した client_secret"
    const timestamp = Math.ceil(+new Date() / 1000) // 現在のタイムスタンプ(10桁)
    const plaintext = `${client}${timestamp}${secret}` // 署名プレーンテキスト
    const signature = CryptoJS.MD5(plaintext).toString().toUpperCase(); // 署名取得

    console.log(`署名結果:${signature}`)
    </script>

ステップ2:認証リクエストの送信

  • リクエスト方式:POST

  • Content-Type: application/json

  • リクエストパラメータ:

    パラメータ名必須説明
    clientId文字列はいクライアント(プラットフォーム提供)
    time数値はい現在のタイムスタンプ
    signature文字列はい署名(client_id + time + client_secret を連結し、MD5で暗号化した32桁大文字の文字列)
  • リクエスト例:

    curl --location 'https://localhost/api/TokenAuth/Authenticate' \
    --header 'Content-Type: application/json' \
    --data '{
    "clientId": "openapi",
    "time": 1724753509317,
    "signature": "B9DBA02F6223468F16E8250D8F080CFF"
    }'
  • レスポンスパラメータ:

    パラメータ名サブパラメータ説明
    codeステータスコード
    data結果データ
    accessTokenアクセストークン
    expireInSeconds有効期間(秒)
    success成功かどうか
    msgエラーメッセージ
  • レスポンス例:

    {
    "code": 200,
    "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc0V4dGVybmFsIjpmYWxzZSwidXNlcklkIjoiNDMyNDMwMDg0OTY4Njc3Nzg1NyIsImFjY291bnQiOiJXZWxsaW5ndG9uQXBpIiwicmVhbE5hbWUiOiJXZWxsaW5ndG9uQXBpIiwidXNlclR5cGUiOiJkZGFfY2xpZW50Iiwic3lzdGVtIjoiSE9NRSIsImVtYWlsIjpudWxsLCJhdmF0YXIiOm51bGwsImdsb2JlUm9sZU5hbWUiOm51bGwsImNsaWVudFR5cGUiOjAsIm11c3RDaGFuZ2VQd2QiOmZhbHNlLCJleHAiOjE3Mjg4MDcyMDV9.J0oiH0hzYv72X65DZEOoAxDV6PsNuUuyKhNYkdlaD90",
    "expireInSeconds": 86400
    },
    "success": true,
    "msg": null
    }