[GAS] Steamで遊んだ時間をGoogleカレンダーに記録する
最近、NeosVRやVRChatなどのVRゲームをする時間が増えてきた。 ここ数年、ライフログとして自動的に記録できるアクティビティはGoogleカレンダーに記録するようにしている。
……というわけでSteamで何時から何時まで何のゲームを遊んでいたのかが自動的に記録されるようにしてみた。 APIを叩いてGoogleカレンダーに転記するだけのプログラムはGASで書くのが楽。
しくみ
SteamではWeb APIが公開されている。
この中にGetPlayerSummariesというエンドポイントがある。
これはユーザーの情報を取得するエンドポイントだが、ゲームを遊んでいる間だけ
gameid
gameextrainfo
というフィールドが生えてくる。 このAPIを定期的に叩き、gameidとgameextrainfoが生えている間はゲームのプレイ中としてカレンダーのイベントを作成・延長していく。
※ちなみに何時から何時までゲームをした、という情報を取れるエンドポイントは見当たらなかった
実装
Steam API Keyの発行
探せばいっぱい記事があるので省略。
GAS (Google Apps Script) を書く
適当なGoogleスプレッドシートを作成し、スクリプトエディタを開いてGASを書く。 Googleスプレッドシートは、直近で記録したGoogleカレンダーのイベントIDとゲーム情報を一時保存するために利用する。
実行トリガーの設定
run
関数を定期実行。
実行結果
色は薄いですがこんな感じ。