はじめに
プログラミングが全然理解できていない、ど素人が書いたコードです。
一応、意図通りに動いているので公開しますが不具合等ありましたら、すみません。
Google Apps Script
みなさんは Google Apps Script (略称GAS)というサービスをご存知でしょうか?
私は今回このアプリを作るまで知らなかったのですが、ものすごく便利に使うことができるので驚きました。
今回のアプリでは、1日に1回、スプレッドシートへAPIで取得したデータを保存し、その値と現在の値を比較して「今日のキル数」等を算出したいので GAS を使ってスプレッドシートへ書き込むまでを処理していきます。
事前準備
Google Apps Script の使い方や スプレッドシートの使い方自体は今回省かせてもらいますので、ご了承ください。
(解説サイトがたくさんありますので、そちらを参考にしてみてください。)
まずはデータの保存先になるスプレッドシートを作成してください。
私はこのように作成しました。

もう既にデータが入っていますが、B2~D2へ取得した値を書き込むようにします。
(他に1名埋まっていますが、気にしないでください。)
GAS のコード
こちらが前半部分のAPIから情報を取得する部分のコードになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
var trackUrl = 'https://public-api.tracker.gg/v2/apex/standard/profile/プラットフォーム/ユーザー名'; var params={ headers:{ "TRN-API-KEY":"入手したAPI Key" }, method:"get" }; var res = UrlFetchApp.fetch(trackUrl,params); var profile = JSON.parse(res); var tk = profile["data"]["segments"][0]["stats"]["kills"]["value"]; var td = profile["data"]["segments"][0]["stats"]["damage"]["value"]; var ts4w = profile["data"]["segments"][0]["stats"]["season4Wins"]["value"]; |
前編で使ったPHPのコードと意味合い的にはほとんど一緒なので、そこまで難しくはないと思います。
後半部分にはシートを指定し、どこに書き込むかのコードを追加します。
1 2 3 4 5 6 |
var spreadsheet = SpreadsheetApp.openById('スプレッドシートのID'); var sheet = spreadsheet.getSheetByName('ワークシート名'); sheet.getRange('B2').setValue(tk); sheet.getRange('C2').setValue(td); sheet.getRange('D2').setValue(ts4w); |
スプレッドシートのID は事前に用意したシートのURLのこの部分になります。
https://docs.google.com/spreadsheets/d/ここがスプレッドシートのID/edit#gid=0
私の場合はCODの方も同じスプレッドシートで管理しているので、ワークシートも名前で指定してあげています。
上で出した例だと「Apex」と指定してあげます。
あとはAPIで取得した値を指定したセルに書き込むようにすればOKです。
例えば、tk(キル数)をB2に書き込むなら
sheet.getRange(‘B2’).setValue(tk);
となります。
コードをまとめる
ここまでをひとつのファンクションにまとめてあげます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
function Apex_stats() { var trackUrl = 'https://public-api.tracker.gg/v2/apex/standard/profile/プラットフォーム/ユーザー名'; var params={ headers:{ "TRN-API-KEY":"入手したAPI Key" }, method:"get" }; var res = UrlFetchApp.fetch(trackUrl,params); var profile = JSON.parse(res); var tk = profile["data"]["segments"][0]["stats"]["kills"]["value"]; var td = profile["data"]["segments"][0]["stats"]["damage"]["value"]; var ts4w = profile["data"]["segments"][0]["stats"]["season4Wins"]["value"]; var spreadsheet = SpreadsheetApp.openById('スプレッドシートのID'); var sheet = spreadsheet.getSheetByName('ワークシート名'); sheet.getRange('B2').setValue(tk); sheet.getRange('C2').setValue(td); sheet.getRange('D2').setValue(ts4w); } |
これで一度実行してみて、指定したスプレッドシートに書き込まれるか試してみてください。
トリガーを指定する
これがGASの大きな特徴で、大変便利なトリガー機能を使っていきます。

1日に1回、自動で実行してスプレッドシートへデータを書き込んでほしいので上の画像のように設定してあげます。
時刻の選択とエラー通知は自分にあったものへ変更してあげてください。
APIもそうですけど、こんな便利なものが無料で誰でも使えるなんてすごいですよね。
この記事ではここまで