DiscordBotの作成方法
Discord Developer Portalにアクセスする
New Applicationをクリック
好きな名前を入力しCreateをクリック
左側のInstallationをクリックし一番下まで行く
Guild Installの欄のSCOPESにbotを追加しPERMISSIONSにAdministratorを追加する
左側のOAuth2をクリックしClient informationの欄にあるCLIENT IDをコピーしてメモしておく
左側のBOTをクリックしTOKENの下にあるReset Tokenをクリックする
でてきたトークンをコピーしメモしておく(トークンは絶対に他人に見せない)
真ん中あたりまでスクロールしPrivileged Gateway Intentsの欄をすべてONにする
(お好みで上のAuthorization FlowのPUBLIC BOTをONにする)
DiscordBotを招待する
下記のリンクのclient_id= の後(ClientID_hereの部分)に先ほどコピーした CLIENT IDをいれて自分のDiscordサーバーからアクセスする。
https://discord.com/oauth2/authorize?client_id=ClientID_here&permissions=8&integration_type=0&scope=applications.commands+bot
アクセス例
招待するとこのようなオフラインのボット君がサーバーに来る
GlitchとBotのプロセス
Botの処理及び運用はGlitchで行う
アカウントがない場合は作成しておく
こちらのテンプレートに飛び右上のRemixをクリックしプロジェクトをコピーする
プロジェクトをコピーし終わったら環境変数(.env)にClient IDとTOKENを入力する
入力が終わったら右上のShareをクリックする
(今回はコマンドを追加せずデフォルトのままだが追加したい場合はCommandディレクトリ配下にjsファイルを追加する)
下にある2つのリンクのうち上のリンク(Live Site)をコピーしメモしておく
Botをビンタし続ける(24時間運用)
Glitchのプロジェクトは一定時間操作がないとスリープ状態になるので
Botをどうにかして起こし続けなければいけません(鬼畜)
そこでGoogle様が提供しているGoogle Apps Scriptから定期的にリクエストを送信し、サーバーのスリープを阻止します。
リンクに飛び新しいプロジェクトをクリック
以下のスクリプトをコピーしてコード.gsにペーストした後
1行目のGLITCH_URL=""の後に先ほどコピーしたリンク(Live Site)を貼り付けます
var GLITCH_URL = "Glitchのリンクをここへ";
function wakeGlitch(){
var params = {
'contentType' : 'application/json; charset=utf-8',
'method' : 'post',
'muteHttpExceptions': true
};
response = UrlFetchApp.fetch(GLITCH_URL, params);
}
これだけでは起こし続けられないのでトリガーを設定します
左側からトリガーをクリックして右下のトリガーを追加をクリック
下画像の赤枠部分を変更する
時間ベースのトリガータイプを選択を分ベースのタイマーに設定
時間間隔を選択(分)を1分おきに設定
設定後保存を押しトリガーが作成できているか確認する
これにより1分毎にリクエストを送信する仕組みが完成した
Googleにサインインを求められた場合
自分のアカウントにログイン
このような警告文が出た場合は左下のAdvancedをクリック
(出ない場合は下にスクロールしてAllowをクリック)
この文字が出てきたらGo to ~(プロジェクト名)unsafeをクリック
その後下にスクロールしてAllowをクリックすればトリガーが作成できる