○○Scan(Etherscanなど)の結果をAPIで取得し、それをスプレッドシートに表示させよう!
こんにちは、CryptoGamesのユウキです。
本日は、〇〇Scan(Etherscan, Polygonscan, BscScanなど)で取得したAPIの結果をスプレッドシートで表示する方法を紹介します。
今回はあまり馴染みのなさそうな、BscScanでやってみようと思います。
0. BscScanのAPIキートークンを取得しよう
まずは、BscScanを登録しましょう。無料プランで大丈夫です。
下のようにして、APIキートークンが取得できます。
1. ImportJsonを設定する
APIの結果はJSON形式で返ってきます。
その結果を受け取るために、「ImportJson」というオープンソースを利用します。
「拡張機能」から「Apps Script」
こちらの「ImportJSON」のGithubに行き、
ソースコードをコピーして
「ImportJson.gs」という名前をつけて、下のように貼り付けます。
2. AutoRefreshを設定する
下のように、「AutoRefresh」というシートを作ります。
「Apps Script」に「AutoRefresh.gs」を作成し、こちらの関数を貼り付けます。
function AutoRefresh() {
SpreadsheetApp.getActive().getSheetByName('AutoRefresh').getRange(1, 1).setValue(Math.random());
}
内容は、今作った、「AutoRefresh」というシートの(1,1)セルの値をランダムな数値にセットするという内容です。
こちらから、「トリガーを追加」
「AutoRefresh」という関数をどの程度の頻度で実行させるかを設定します。
今回は下のように設定します。
設定ができたら、「保存」
3. APIを確認する
では、どんなAPIを入力すればよいのかを確認しましょう。
Bscのテストネットの場合はこちらになります。
例えば、こちらの、特定のアカウントのBNBのバランスを取得するAPIを使ってみましょう。
下の、「address=」の先に確認したいウォレットアドレスを入れて、「YourApiKeyToken」の部分に自分のAPIキートークンを入れます。
https://api-testnet.bscscan.com/api?module=account&action=balance&address=0x0000000000000000000000000000000000001004&tag=latest&apikey=YourApiKeyToken
ブラウザなどで確認すると、このように結果を取得することができました。
3. Apiの結果をスプレッドシートで取得する
では、これを下のような関数で、スプレッドシートに貼り付けてみましょう。
=ImportJSON("https://api-testnet.bscscan.com/api?module=account&action=balance&address=0x049E8641964cf92f38c50397e34CCE9C3f24dB5E&tag=latest&apikey=YourApiKeyToken", "/result", "allHeaders", AutoRefresh!$A$1)
なお、「AutoRefresh」を行わない場合は下の関数になります。(「AutoRefresh!$A$1」の部分を抜いています。)
=ImportJSON("https://api-testnet.bscscan.com/api?module=account&action=balance&address=0x049E8641964cf92f38c50397e34CCE9C3f24dB5E&tag=latest&apikey=YourApiKeyToken", "/result", "allHeaders")
これで、下のように、結果が表示されました。
では、情報量の多い、下のようなトランザクションからAPIを取ってきてみましょう。
こちらのAPIを利用してみましょう。
下のような関数を実行します。
=ImportJSON("https://api-testnet.bscscan.com/api?module=proxy&action=eth_getTransactionReceipt&txhash=0x02a08b6c106c1fbc8653981fc7e262b6ae95aa066aa47b2c7bad57563abf2341&apikey=YourApiKeyToken", "/result", "allHeaders", AutoRefresh!$A$1)
なお、「AutoRefresh」を行わない場合は下の関数になります。(「AutoRefresh!$A$1」の部分を抜いています。)
=ImportJSON("https://api-testnet.bscscan.com/api?module=proxy&action=eth_getTransactionReceipt&txhash=0x02a08b6c106c1fbc8653981fc7e262b6ae95aa066aa47b2c7bad57563abf2341&apikey=YourApiKeyToken", "/result", "allHeaders")
スプレッドシートに貼り付けると、このような結果が得られました。
例えば、この辺りを見ると、誰から誰にトークンが移動しているのかを見ることができます。
トークンの量はこの辺りなのですが、これだとよくわかりませんね。
実はこちら、16進数になっています。
そのため、任意のサイトで、10進数に変換すれば、このように、トークン量を求めることができます。
https://hogehoge.tk/tool/number.html
4. AutoRefreshを終了する(重要です!)
最後に、「AutoRefresh」を使用した場合には、必ず忘れずに、トリガーを終了させてください。
5. 他のチェーンでも確認してみる
なお、全く同じようにして、EterscanやPolygonScnからもAPIが取得できます。
APIキートークンについては、○○Scanごとに違うので、個別に取得し、設定してみてください。
下に、参考として、PolygonScan, Etherscan(Goeli)で残高を取得するのAPIの取得のコマンドを載せておきます。
Polygonscan(mumbai)
=ImportJSON("https://api-testnet.polygonscan.com/api?module=account&action=balance&address=0x049E8641964cf92f38c50397e34CCE9C3f24dB5E&tag=latest&apikey=YourApiKeyToken", "/result", "allHeaders")
Etherscan(Goerli)
=ImportJSON("https://api-goerli.etherscan.io/api?module=account&action=balance&address=0x049E8641964cf92f38c50397e34CCE9C3f24dB5E&tag=latest&apikey=YourApiKeyToken", "/result", "allHeaders")
今回は以上です。
最後までありがとうございました。
Discussion