Skip to main content

Data API

概要

本稿では DATA 開発連携に関する内容を紹介します。

データインターフェース認証ログイン

プラットフォームが公開するインターフェースサービス(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
    }