Data API
概述
本文では、DATA開発の連携に関する内容を紹介します。
データインターフェース認証ログイン
プラットフォームが公開しているインターフェースサービス(RESTfulスタイルのHttpサービス)は、すべて認証ログインが必要です。これにより、データの安全性が保証されます。現在サポートされている認証方式は1種類のみで、Bearer Token
です。
連携準備
プラットフォームからclient_idとclient_secretのペアを取得する必要があります。これはあなたのアプリケーションの唯一の識別子であり、access_tokenを取得するために使用されます。
身元認証
client_idとclient_secretを取得したら、以下の手順でaccess_tokenを取得できます:
第一步:署名の生成
署名の生成ルール:client_id + 現在のタイムスタンプ + client_secretを連結し、MD5暗号化を行います。暗号化後の32桁の大文字の文字列が署名文字列となります。
-
署名生成の例:
- javascript
- c#
<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>using System.Security.Cryptography;
var client = "あなたのclient_idを入力";
var secret = "あなたのclient_secretを入力";
var timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds() / 1000; // 現在のタイムスタンプ(10桁)
var plaintext = $"{client}{timestamp}{secret}"; // 署名のプレーンテキスト
var signature = Convert.ToHexString(MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(plaintext))); // 署名を取得
Console.WriteLine($"署名結果:{signature}");
第二步:認証リクエストの送信
-
リクエスト方法: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
}