チャットボットというより、定期的にそういうのが投稿されていればOKなシーンがある(リマインドなど)。
なので、その方法が知りたいと思って調べた。
多分2パターン
調べた感じ2パターンな気がする。
Webhook でやる
こっちのほうが気楽な気がする。
curl -H 'Content-Type:application/json' "$DISCORD_WEBHOOK_URL" -d '{"content": "もぐもぐ\rおかゆ〜"}'
下記の記事を参考にした。
めっちゃ簡単にPOSTできた。特定のチャンネルに対する特定の発言を投げつけるだけだったら十分実用的な気がする。
今のところはこっちで十分そう。
discord.py とか bot ライブラリからやる
投稿チャンネル数とかが横断的かつ、多数になってきたときはこっちのほうが良さそう。
この記事のログイン時のメッセージで使ってるのを少し改変して、こういう形にしたけど、まあ投げれてはいる。ログイン時に関しては、登録してそうなチャンネルIDをDBなりキャッシュなりからガサッと持ってきて、それをぐるぐる投げつければいけるのかなと思ってる。
@client.event async def on_ready(): print('ログインしました') login_channel = os.getenv('LOGIN_CHANNEL') if login_channel: login_channel_id = int(login_channel) channel = client.get_channel(login_channel_id) await channel.send('起動したやで')
これをあとはなんか適切なイベントに割り振るとか、適当なメソッド呼び出しを外部からするとかすれば良さそう。
あんまりちゃんと調べられていないので、それっぽいやり方があれば、もう少し深く調べる。
まとめ
今のところは管理は煩雑かなと思いつつ、WebHookぐるっと回すかなという感じ。Discord Bot の使い方とか、できそうな機能を調べたらもう少し真面目にBotづくりして対応できればいいかなーと思ってるけど、現時点ではどうしていけばいいのかわかってないです。Documentもう少し漁るか…。