esmieの技術倉庫

RTA / 配信 / ゲーム関連のつくったもの置き場

PCゲームのプレイ記録を出力するDiscord Botの導入#2 GlitchとGASの連携

[2021/11/9更新] GASエディタの仕様変更に合わせて一部記述を修正しました。

-----

この記事は、私が作ったDiscord Bot 「Gaming Logger」の導入方法を解説する記事(第2回)です。

今回は Google Apps Script(以下、GAS)というウェブ上でアプリをつくって動かせるサービスを利用して以下の2つの機能を実装します:

そもそも Gaming Logger とは何ぞや、Glitch とは何ぞや、という方は下記の前回記事を読んでからこの記事を読むといいかもしれません。

前回:PCゲームのプレイ記録を出力するDiscord Botの導入#1 GlitchでBotを動かす

ー Contents ー

改めて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)

保存出来たら、画面上のツールバーからデプロイ > 新しいデプロイをクリック

ポップアップ画面左上の歯車マークをクリックしてウェブアプリを選択

f:id:esmie:20211109213217p:plain

右側一番下のアクセスできるユーザーを全員に変更してデプロイボタンをクリック

f:id:esmie:20211109213222p:plain

読み込み後に表示されるアクセスを承認ボタンをクリックすると、手順4と同様の警告画面が表示されるので、元の画面に戻るまで先程と同様に進めていきます。

最後にこのような画面が表示されるので、ウェブアプリのURLをコピーしておきます。

f:id:esmie:20211109213235p:plain

URLをコピーする前に画面を閉じてしまった場合は、デプロイ > デプロイを管理を選択して出てくる画面に表示されているウェブアプリの URL をコピーすれば大丈夫です。

これでGASでの作業は終わりです。

Glitchに戻って左のファイル一覧から.envを開き、GAS_URLの欄に先程コピーしたURLを貼り付けたら Bot の導入作業も完了です!

6. Botの動作を確認する

最後に、導入したBotがちゃんと動作するかの確認をします。

まず、Discordのユーザー設定からゲームアクティビティを開き、起動しているゲームをステータスに表示するON にします。

f:id:esmie:20201212211756p:plain

次に、以下の点を確認します:

  1. Steamなどの適当なゲームを起動して、Discordの自分のステータスにゲーム名が表示されていることを確認

  2. ゲームを閉じた後、以下の2点を確認する

    • Discordの指定したチャンネルにメッセージが送信されているか
    • スプレッドシートにゲーム名、プレイ時間、開始時刻、終了時刻が出力されているか

全部OKだったら完了です!お疲れさまでした!
確認が終わったら Glitch 上のGAS Filesは削除してしまってOKです。

次回の記事ではこのBotの出力ログのカスタマイズ方法について解説するので、気になる方はそちらもご覧ください。

シリーズ記事

第1回:PCゲームのプレイ記録を出力するDiscord Botの導入#1 GlitchでBotを動かす
第2回:この記事
第3回:PCゲームのプレイ記録を出力するDiscord Botの導入#3 出力ログのカスタマイズ

参考にしたサイト

note.com jellyware.jp