BitflyerのAPIキーとシークレットを取得しよう

第2回の記事で、「APIとは何か?」を説明し、実際にパブリックAPIを利用してbitFlyerの板情報を取得する方法を説明しました。覚えていますか?

そのときにも説明しましたが、実際に売買注文をAPI経由で出したり、自身のJPY残高を確認したりするためには、「プライベートAPI」を利用する必要があります。今回の記事では、プライベートAPIを利用するのに必要なパスワード(=APIキー・シークレットといいます)を取得しておきましょう。

APIキー・シークレットの取得

まずは「bitFlyer lightning」にログインしてください。
(bitFlyerのアカウント登録がまだの方は、ぜひこちらから登録してください)

▽ bitFlyer lightningのログイン後の画面

ログインしたら、左上の「三」MENUマークをクリックして、メニューの一覧から「API」をクリックしてください。

「新しいAPIキーを追加」をクリックします。

免責をキチンと読んだ上で「同意」してください。

APIキーの権限の設定

以下のような画面が出てきます。
これはAPI経由での命令について「どのような行為まで許可するか?」という権限の設定です。

ここでチェックを入れた項目については、APIキーとシークレットを知っていれば、誰でも実行することができます。つまり万が一、APIキー・シークレットが漏洩した場合には、実行されてしまう可能性のある項目です。

単に自動売買BOTを作るだけなら、入出金の機能は不要なので、すべて外しておきましょう。特に銀行への「出金」の指示をBOT経由で出すことはまずないと思うので、「出金」は外しておいてください。

「資産」と「トレード」の項目はすべてチェックを入れて構いません。(権限は後からでも変更できるので、あまり考えこむ必要はありません)

またラベルは単に自分がAPIキーを識別するためのものなので、何でも構いません。「自動売買BOT作成用」とでもしておくといいでしょう。これで「OK」を押せば、APIキーの作成が完了します。

APIキーとシークレットを厳重に保管する

作成が完了したら以下の画面になります。
「表示」の部分をクリックした上で、API KeyとAPI Secretをメモして安全ば場所に保管してください。

このブログは、仮想通貨トレードのブログなので、暗号技術に多少興味のある方も見ていると思います。そのため、一応、簡単にAPIシークレットの意味を説明しておきましょう。(興味のない方は以下の段落は読み飛ばしてくださいw)

API注文の暗号化の仕組み

API経由でbitFlyerに売買注文などの命令を出すときは、「メッセージ認証コード」(HMAC)という暗号技術が使われています。この方式では、APIで実行したい指示の内容を、APIシークレットとセットにしてハッシュ値を計算し、そのハッシュ値をWEB経由で送ります。

そのため、もし通信内容が途中で漏洩したとしても、そこからAPIシークレットが判明することはありません。またAPIシークレットを知らないとハッシュ計算ができないので、APIシークレットを知らない人が、自分に成りすまして勝手に注文を偽装することもできません。

APIキーの方は、平文のまま通信のヘッダーに含まれて送信されます。とはいえ、こちらもhttps通信で暗号化されていますので、一般論としていえば、通信内容を傍受することはできません。要するに、APIキーとシークレットは、通信途中で漏れることはない、という話です。

【重要】信用できないソースコードにAPIシークレットを入力しないこと

ただし初心者の方に気を付けて欲しいのは、自分のよく理解していない売買BOTのプログラムやライブラリに、「安易にAPIシークレットを渡してはいけない」ということです。

上記のように通信の途中で、第三者に傍受されてAPIキー・シークレットが漏洩することはありません。しかし、自分の理解していないPythonのソースコードにAPIシークレットを入力すると、そのPythonプログラムがどこか第三者にこっそりAPIシークレットを送信している可能性は0ではありません。

ソースコードはなるべく読んで意味を理解しながら書き写し、また外部のライブラリを使う場合は、githubなどでソースコードが公開されているもの、有名で皆が使っているもの、を使うようにしましょう。

またAPIキーの権限には、出金などの権限を与えず、常に必要最小限にしておくことが大事です。

次回:BitflyerのAPI経由でpythonで「買い注文」を出そう!