2018年2月27日火曜日

GASでDiscord botを作ろうと奮闘した話

・はじめに
一度pythonでDiscordのbotを作成したものの、実行しておくサーバーを持っていなかったため、なんとかしてサーバーレスで作ろうとして、GASについていろいろ調べました。
私自身GASは一回も触ったことがなく、またjavascriptも使ったことがなく、大してDiscordBotの仕組みも理解していない状況です。

作ろうと考えているbotはメッセージにコマンドを入力すると、それに対してbotが応答するというシンプルなもの

・まずはGoogle先生に聞いてみた
ところ・・・
「GAS Discord bot」で🔎しても出てこないんですね。誰も作ってないとは言いませんが、slackばっかり出てきてなんでDiscordにないんだろうかと何度も思いました。

・そこで とりあえずslackbotの作り方を調べてみた
すると分かったことがいくつか
まず、GASには当然ですけど関数を実行するトリガーがいくつかあって
デフォルトで設定できるのが、
何分毎とか何時間ごと、スタイルシートが編集された時 とかですね
あとはdoGet関数とdoPost関数みたいなのがあって 要は作ったGASのコードをアプリとして登録したときにそこにPOSTされたら実行するみたいなのもあるんですね

で、slackで似たような機能を持つbotの作り方のサイト見てたら、
まずslackで入力されたメッセージを外部のサイトへPOSTする(今回はGAS)
GASがPOSTされたメッセージをdoPostで受け取って、なんらかの処理をしてメッセージをslackへPOSTする
っていう流れなんですよね

・Discordではどうなのか
DiscordではWebhookと呼ばれるbot 簡単に言うと外部ツールからメッセージを入力するbotです はテキストチャンネルごとに簡単に作れます
しかし なぜなのか Discordには外部にPOSTするシステムがありません。
slackではoutgoing webhookと呼ばれているらしく、公式の機能として存在しています。

つまり
Discordでのメッセージの入力をGASのトリガーにする方法が存在しない?
可能性があります

Discord.jsとかまともに読んでないので何とも言えないですけど
誰か強い人、うまいやり方がないか教えてください



というわけでこのpythonで作ったbotさんはいまだに自分のゲーム用PCの上で動いています。PCの電源が切れてる間はbotの命はありません。
無料で簡単にpythonbotを実行できるサーバーとかあれば教えてください。
herokuはなんかダメになったらしいしIBMなんとかはクレカの登録が必要とかなんとかで使いにくい。



bloggerのソースコード貼り付けフォーマット作らないと

0 件のコメント:

コメントを投稿