PCゲームのプレイ記録を出力するDiscord Botの導入#1 GlitchでBotを動かす
この記事は、私が作ったDiscord Bot 「Gaming Logger」の導入方法を解説する記事です。
全3回構成で、この記事(#1)と#2で導入方法を説明します。#3は出力形式のカスタマイズ方法紹介なので、導入だけの人は#2まで読めばOKです。
ー ご了承 ー
Botの仕様と製作者の技術不足により「Botをサーバーに招待するだけ!」という公開方法が難しく、導入にちょっと(だいぶ)手間がかかってしまいます。
その分誰にでもわかりやすいように記事を書いたつもりなので、よろしければお付き合いください。
Gaming Loggerとは
PCで「いつ」「どのくらい」「どのゲーム」をプレイしたのかをDiscordを介して取得し、DiscordのチャンネルとGoogle スプレッドシートに記録するBotです。
コードはNode.jsで記述してあり、Glitch1上で24時間オンライン稼働します。
記録例:
この記事で対象とする人
- DiscordユーザーでPCゲームのプレイ記録をつけたい人
(プログラミング全く分からなくても大丈夫!) - GlitchとGASの連携について知りたい人 ⇒ 導入方法#2 で解説しています
対象としない人
- Discordのステータスに「○○をプレイ中です」を絶対に表示させたくない人
このBotはDiscordのユーザーステータスからゲームのプレイ状況を読み取っているので、これが非表示だとうまく動作しません。申し訳ない...
ある特定のゲームだけステータスに表示されないようにしている場合は、そのゲームの記録は残りませんがそれ以外のゲームのプレイ記録は出力できます。
全体図
Bot周りの関係図はこんな感じです。 図中では [Steam] となっていますが、設定をすることで他のPCゲームにも対応可能です。
必要なもの
- Discordアカウント
- Glitchアカウント
- Googleアカウント
導入方法
1. Discordサーバーとチャンネルをつくる
まず、自分の個人サーバーとプレイ記録を出力するチャンネルをつくります。もうあるよ、という方は手順2に進んでください。 Discordのアカウントがない場合は、Discordの新規登録画面にアクセスしてアカウント登録をしましょう。
個人サーバー(自分が管理権限を持っているサーバー)をつくります。Discordの画面左端の+
マークをクリックしてサーバーを追加して、
Create My Own
をクリックして選択します
お好きなサーバー名を入力して新規作成
をクリック
これで自分のサーバーができました。
次に、Botがプレイ記録を出力する用のチャンネルをつくります。「テキストチャンネル」と表示されている右側の+
をクリックしてチャンネルを作成して、
プレイ記録用だと分かりやすいような名前を入力、チャンネルを作成
をクリックします
こんな感じの画面が表示されていたらOKです
2. Botを新規作成する
Discord Developer Portalにアクセスして、Discordアカウントでログインします。
このような画面が表示されるので、右上のNew Application
をクリック
お好きな名前を入力してCreate
をクリックします。ここで入力する名前はBotの名前ではないのでどんな名前でも問題ないですが、Botの名前と同じにすると分かりやすいです。
こんな感じの画面になったら成功
次に、左欄からBot
を選択してからAdd Bot
をクリックしてBotを作成します。
PUBLIC BOT
の項をOFF、PRESENCE INTENT
の項をONにして、下にポップアップしたSave Change
をクリック
(PRESENCE INTENTにチェックを忘れると、Botがユーザーステータスを取得できないためうまく動作しなくなります)
セーブが完了してポップアップが消えたら、左欄からOAuth2
を選択してSCOPES
の欄にあるbot
にチェックを入れます
そうすると下にBOT PERMISSIONS
が表示されるので、真ん中の列一番上のSend Messages
にチェックを入れます。
ここではBotにどんな権限を与えるかを選択していて、今回は「テキストを送信する」権限だけあれば問題ないです。
最後に、SCOPES
とBOT PERMISSIONS
の間に表示されているURLをCopy
ボタンクリックでコピー、ブラウザのアドレスバー(URLが表示されている部分)にペーストして Enter を押します。
このような画面が表示されるので、先程つくった個人サーバーを選択してはい
をクリック
「認証しました」と表示されていればOKです
Discordの個人サーバーを確認してみると、右側の欄にちゃんとBotが追加されていることが分かります。
3. Glitchのプロジェクトを作成する
Glitchとは、ウェブ上でNode.jsを動かすことができるサービス(いわゆるPaaS)です。環境構築いらずで他のPaaSとの連携もしやすいため、今回はこれを用いてBotを動かしていきます。
まず、Glitchにアクセスしてログイン、アカウントを持っていない場合は新規登録してからログインします。
ログインするとこのような画面になっているので、右上のNew Project
> Import from Github
をクリックします。
Githubからソースコードをインポートするための入力欄がポップアップするので、下記URLをコピペしてOK
をクリック
https://github.com/esmieimse/Gaming-Logger-Bot
しばらく Loading Project となった後、このような画面になったらインポート成功
左上に表示されているプロジェクト名は、変更してもしなくても大丈夫です。
左側のファイル一覧から.env
をクリックして開き、Variable Value
と書かれた欄に DISCORD_BOT_TOKEN, USER_ID, CHANNEL_IDをそれぞれ入力します 。
(一番下 GAS_URL はまだ空欄でOK)
各値についての説明
- DISCORD_BOT_TOKEN:
BotとGlitchを紐づけるための鍵のようなもの、絶対に外部へ漏らしてはいけない(戒め)
1.で作成したBotのページからSETTINGS
>Bot
の中にあるTOKEN
からコピーして貼り付け - USER_ID:
自分の Discord ユーザーID
取得方法は下記参照 - CHANNEL_ID:
プレイ記録を出力したいチャンネルのID
取得方法は下記参照
User ID / Channel ID の取得方法(クリックで表示)
Discord画面から、左下ユーザー設定
をクリック
テーマ
を選択して下のほうにある開発者モード
を ON 、右上の×
で設定画面を閉じる
この状態で右欄のユーザーIDを取得したいユーザーにカーソルを合わせて右クリック
一番下にIDをコピー
という項があるのでこれをクリックする
チャンネルIDも同様に、IDを取得したいチャンネルの名前の上で右クリック⇒IDをコピー
をクリックする
次に続く
長くなってしまったので一旦ここで区切ります。
次回はGoogle Apps Scriptを使って、Botの24時間駆動とスプレッドシートへの書き込みができるようにします。
シリーズ記事
第1回:この記事
第2回:PCゲームのプレイ記録を出力するDiscord Botの導入#2 GlitchとGASの連携
第3回:PCゲームのプレイ記録を出力するDiscord Botの導入#3 出力ログのカスタマイズ
-
Glitch: Node.jsを使ったウェブアプリを作成・公開することができるサービス↩