PCゲームのプレイ記録を出力するDiscord Botの導入#2 GlitchとGASの連携
[2021/11/9更新] GASエディタの仕様変更に合わせて一部記述を修正しました。
-----
この記事は、私が作ったDiscord Bot 「Gaming Logger」の導入方法を解説する記事(第2回)です。
今回は Google Apps Script(以下、GAS)というウェブ上でアプリをつくって動かせるサービスを利用して以下の2つの機能を実装します:
- Glitch上のBotを24時間稼働させる
- BotからGoogle スプレッドシートへ書き込む
そもそも Gaming Logger とは何ぞや、Glitch とは何ぞや、という方は下記の前回記事を読んでからこの記事を読むといいかもしれません。
前回:PCゲームのプレイ記録を出力するDiscord Botの導入#1 GlitchでBotを動かす
改めてBot周りの構成図
この図の右側の部分をつくっていきます。
4. Botを24時間稼働させる
Glitchというサービスでは、アクセスをしないと5分で眠ってしまいます。このままではゲームのプレイ状況を監視することができないので、GASを利用して定期的にGlitchにアクセスします。
まず、お手持ちのGoogleアカウントからGoogleドライブにアクセスして、左上の+ 新規
をクリックします。
その他
> Google Apps Script
を選択して新規プロジェクトを作成
こんな感じの画面に移ったらOK
デフォルトで記述されているコードを削除します
ここで一旦Glitchに戻ります。
GAS Files
フォルダ内のbot-waker.gs
を表示して、中身をすべてコピー
先程作成したコード.gs
に貼り付けます。
このコードでGlitch1行目の{YOUR_GLITCH_PROJECT_NAME}
を Glitch の画面左上に表示されている名前に変更して、プロッピーマークをクリックして保存します。
表示されたポップアップ画面に適当なプロジェクト名を入力したらOK
をクリック
次に関数を選択
> wakeGlitch
をクリックして、その左の▶
ボタンを押して関数を実行します
このような画面が出てくるので、許可を承認
をクリック
その次に出てくるアカウント選択画面でアカウントをクリックし、警告画面が表示されたら以下のように選択して画面を進めます。
コードが表示されている画面に戻ったら、GASでの作業はひと区切りです。
最後に、Glitchで今実行した関数がちゃんと動いているか確認します。
Glitchの画面左下にあるTools
> Logs
をクリックしてコンソールログを開いて、
上の画像のように
post:wake wake up in post
と表示されていれば成功です。
5. Botの出力をスプレッドシートに書き込む
再びGoogleドライブに戻って、+ 新規
> Google スプレッドシート
で新規スプレッドシートを開きます。
開いたら、下の画像のように1行目の一番左のセルから
| ゲーム名 | プレイ時間 | 開始時刻 | 終了時間 |
という感じで入力をしておきます。
ここは後で変更できるので、適当でもかまいません。
上部のツールバーからツール
> スクリプト エディタ
をクリックしてGASの新規プロジェクトを作成
先程と同様にデフォルトで記述されているコードを削除します。
今度は、GlitchにあるGAS Files
フォルダ内のspreadsheet.gs
を表示して、中身をすべてコピー
⇒ コード.gs
に貼り付け
⇒ フロッピーマークをクリックして保存(プロジェクト名は適当でOK)
保存出来たら、画面上のツールバーからデプロイ
> 新しいデプロイ
をクリック
ポップアップ画面左上の歯車マークをクリックしてウェブアプリ
を選択
右側一番下のアクセスできるユーザーを全員
に変更してデプロイ
ボタンをクリック
読み込み後に表示されるアクセスを承認
ボタンをクリックすると、手順4と同様の警告画面が表示されるので、元の画面に戻るまで先程と同様に進めていきます。
最後にこのような画面が表示されるので、ウェブアプリのURLをコピーしておきます。
URLをコピーする前に画面を閉じてしまった場合は、デプロイ
> デプロイを管理
を選択して出てくる画面に表示されているウェブアプリの URL をコピーすれば大丈夫です。
これでGASでの作業は終わりです。
Glitchに戻って左のファイル一覧から.env
を開き、GAS_URL
の欄に先程コピーしたURLを貼り付けたら Bot の導入作業も完了です!
6. Botの動作を確認する
最後に、導入したBotがちゃんと動作するかの確認をします。
まず、Discordのユーザー設定からゲームアクティビティを開き、起動しているゲームをステータスに表示する
を ON にします。
次に、以下の点を確認します:
Steamなどの適当なゲームを起動して、Discordの自分のステータスにゲーム名が表示されていることを確認
ゲームを閉じた後、以下の2点を確認する
- Discordの指定したチャンネルにメッセージが送信されているか
- スプレッドシートにゲーム名、プレイ時間、開始時刻、終了時刻が出力されているか
全部OKだったら完了です!お疲れさまでした!
確認が終わったら Glitch 上のGAS Files
は削除してしまってOKです。
次回の記事ではこのBotの出力ログのカスタマイズ方法について解説するので、気になる方はそちらもご覧ください。
シリーズ記事
第1回:PCゲームのプレイ記録を出力するDiscord Botの導入#1 GlitchでBotを動かす
第2回:この記事
第3回:PCゲームのプレイ記録を出力するDiscord Botの導入#3 出力ログのカスタマイズ