質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

1回答

246閲覧

GoogleAppsScriptでZaifのAPI認証

nao9i

総合スコア4

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

1クリップ

投稿2018/01/13 14:41

###前提・実現したいこと
GoogleAppsScriptでZaifの現物取引APIで認証を通そうとしています。
現物取引APIは認証が必要なものです。
APIドキュメントはこちらです。

###発生している問題・エラーメッセージ
署名がうまくいっていないようで、以下のエラーが出ています。
error=signature mismatch

おかしなところがあればご指摘いただけると助かります。
よろしくお願いします。

###該当のソースコード

zaif.gs

1function getZaifInfo() { 2 var key = ZF_KEY; 3 var secret = ZF_SECRET; 4 var endpoint = 'https://api.zaif.jp/tapi?' 5 var date = new Date(); 6 var nonce =Math.floor((date.getTime()/1000)).toString(); 7 var method='get_info'; 8 var currency_pairs='xem_jpy'; 9 10 //パラメーター作成 11 var encoded_params = 'nonce=' + nonce +'?method=' + method 12 13 //HMAC-SHA512で署名 14 var signature = Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_512, encoded_params, secret,Utilities.Charset.UTF_8); 15 var signed = //バイト配列で暗号を返すので16進数化 16 17 var headers ={ 18 'key':key, 19 'sign':signed, 20 'Content-Type':'application/x-www-form-urlencoded' 21 } 22 var options ={ 23 'method':'POST', 24 'headers':headers 25 } 26 27 var url = endpoint + encoded_params; 28 var response = UrlFetchApp.fetch(url, options); 29}

###試したこと
署名の文字コードの指定有無:結果変わらず

###補足情報(言語/FW/ツール等のバージョンなど)
参考にした情報
https://developers.google.com/apps-script/reference/utilities/
https://qiita.com/bitrinjani/items/fff7e2bf6a2b8be6eac0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

パラメータの作り方がおかしいような気がします。(2つめ以降のパラメータは、「?」ではなく「&」でつなげる)

diff

1 //パラメーター作成 2- var encoded_params = 'nonce=' + nonce +'?method=' + method 3+ var encoded_params = 'nonce=' + nonce +'&method=' + method 4 5

試していないので、うまく認証できないのは上記以外にも原因があるかもしれません。
また、コードに記載されていない、バイト列を16進文字列化する部分も、正常に動作しているか確認してみてはいかがでしょうか。

投稿2022/02/26 23:07

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問