Google Apps Scriptを使った、Gate.ioのAPIの操作方法を書いていきます。まずは、認証方法について書きます。APIの認証は、自分のデータに関する操作(参照・送金・売買など)をするために必須の手順になります。
Gate.ioのAPIキー取得はこちら「Gate.ioのAPIキー取得方法」
Gate.ioへの登録がまだの方は下記よりどうぞ!
スポンサーリンク
ドキュメント
Gate.ioが出してる公式ドキュメントはこちらです。但し、まあまあ分かりにくいです。
ちなみに、認証が必要になるのは、自分のアカウントに紐づいた操作をするときだけです。例えば、今回例に挙げるAPIのように、自分のアカウントのbalanceを取得するときなどです。
ざっくりした流れ
認証のざっくりした流れとしては、POSTする際のリクエストボディのデータを、APIシークレットを秘密鍵にして、HMAC SHA512にでハッシュ化します。そして、ハッシュ化した文字列を、ヘッダー部分のSIGNにセット、APIキーをKEYにセットしてリクエストする、という感じです。
認証部分のコード
コードはこんな感じです。
var apikey = "自分のkey"; var apisecret = "自分のsecret"; function creatSign() { // リクエスト内容により可変。何もないときは下記のように空文字 // 複数あるときは、&で結合する var params = ""; // リクエストBODYの中身を、secretを秘密鍵にしてHMAC SHA512でハッシュ化 var sign = Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_512, params, apisecret); sign = sign.map(function(e) {return ("0" + (e & 0xFF).toString(16)).slice(-2)}).join(""); var options = { method: "post", headers: { "key": apikey, "sign": sign } } var res = UrlFetchApp.fetch("https://api.gate.io/api2/1/private/balances", options).getContentText(); }
Google Apps ScriptでのHMAC SHA512についてはこちらを参考にしました!
「Zaif API for Google Apps Script」