今所属しているクランで,最近アジトを購入しました。
アジトといえば数多の悲劇を産んできた税金問題があるわけですが,なんとかリマインダーを作れないものかね?ということでDiscordで定期的にリマインダーをポストするBOTを作りました。
広くLineageに限らず,「Discordで定期的にリマインドを送りたい」という要求に応える内容となっております。
正直死ぬほど疲れた(後述する問題で)ので,忘れない内にメモしておきます。
特にプログラミングとかITの知識がなくても,サルでも作れるように書いているつもりです。
1)用意するもの
・定期ポストを実施したいDiscordのアカウント(多分管理者権限が必須)
・Googleカレンダー(Googleアカウントは必須)
・Zapierのアカウント(Googleカレンダーとディスコードを橋渡しする役割があります)
https://zapier.com/
アカウントの作り方は各自でなんとかしてください(´-ω-`)
2)はうとぅーどぅーいっと
基本的にはありがたい先駆者様の方法を踏襲すればよいのですが,ここで困ったことが。
2021年6月1日現在,DiscordがIFTTTのウェブフックを弾くという事態に。
公式も声明を出していますが対処できていないので,パス。というわけで代替措置のZapierに頼ります。
Zapierは無料プランだと1ヶ月に100回までしかリマインドできませんが,100回/month=3回/dayと,そんなにリマインドすることもないでしょう。
Zapierに金を払うのが惜しくないなら,ウェブフック経由でやった方が多分幸せです。
2-1)Googleカレンダーを作る
まずはGoogleカレンダーにアクセスして,リマインダーに使う専用のカレンダーを登録してください。
「新しいカレンダーを作成」から好きな名前のカレンダーを作りましょう。日本語名でOKです。
後述する理由から,他のカレンダーとは分けておくと便利です。
2-2)Zapierの設定
Zapierにログインし,左側のメニューバーからMAKE A ZAPを選択します。
こんな画面が出てきますので,「Google Calendar」を選択。
表示されていないければ「Search apps...」に「Google」と入れれば出てきます。
ここでは「何が起きた時にDiscordに投稿するか」を決めます。
リマインダー的な使い方をするので「Event Start」を指定します。
選択したら「Continue」をクリックします。
うまくいくと,次に「Choose Account(アカウントを選べ)」と聞かれます。
自分が使うアカウントが表示されていればそれでよいですが,多分表示されていないと思いますので,ここでは「+Connect a new account」を選択します。
そうすると,どのGoogleアカウントを使うか(ないしは新しいアカウントでログインするか)聞かれますので,2-1で作ったカレンダーと同じアカウントを選択してください。
選択し終わったら「Continue」をクリックしましょう。
さて,何やら不思議な入力フィールドが出てきましたので,次のように入力します。
Calendar: 2-1)で作った専用のカレンダーを選択します。
Time BeforeとTime Before(unit):「予定の何分前に通知するか」を選択します。例えば30分前に通知したい時はTime Beforeに「30」を,Time Before(unit)に「Minutes」を入力しましょう。2時間前は同じく「2」,「Hours」です。
Search Term:空欄のままでOK
全て入力し終わったら「Continue」を押して次に行きましょう。
「Test Trigger」をクリックして,ここまで全て画像の通りにしていれば成功し,下のようなおめでたい感じの画面になるはずです。
ここまでで,「Googleカレンダーのイベントを取得する」手順です。
成功することを確かめたらContinueをおし,ここからは「Discordに投稿する」手順を作成しましょう。
先ほどと似たような画面に戻りましたが,今度は「Discord」を選択します。
一覧になければ「Search apps...」に「Discord」と入れましょう。
今度は「Action Event」から「Send Channel Message」を選択し,Continueを押します。
ここから自分のDiscordを選ぶか「Connect a new account」でDiscordアカウントにログインしましょう。いくつかの権限を認める必要があります。
無事にアカウントにログインできたらContinue。
さて,いっぱい出てきましたが次のように入力していきます。
Channel:クリックするとDiscord上のチャンネル一覧が出ますので,リマインダーを投稿したいチャンネルを選びます。
Message text:ここだけはちょっと知識が必要です。今回は
「@everyone 1. Summary:This is a test event.1. Description:Test Event」
と入力しましょう。 「Summary:This is a test event」と「Description:Test Event」はMessage Textをクリックすると勝手に入力されます。うまく入力するとこんな感じ。
「@everyone」の部分はDiscord上で誰に通知するかの部分ですので,ご自由にどうぞ。
Text to Speech:そのまま何もいじらなくてOK
Bot Name:リマインドを投稿するBOTの名前を決めます,が日本語は使えません。半角アルファベットの好きな名前にしましょう。空欄でもOKです。
Bot Icon:BOTのアイコンの画像があるURLを選択します。空欄でもOKです。
全て入力が終わったら「Continue」を押しましょう。
うまくいけば,Discordで指定したチャンネルに何やら勝手にメッセージが投稿されるはずです。
ここまでくれば,最後の仕上げです。
一番上の「Name your zap」には好きな名前を入れましょう,なんでもいいです。
重要なのは「右側のShareボタンの横にあるスイッチをONにすること」です。
これをONにしないと意味がないので注意!
うまくいったらZapierでの仕事はおしまいです。
2-3)Googleカレンダーに予定を作る
ここでは「サンドワーム出現時間を毎週金土日に投稿する」内容を設定してみましょう。
まず,2-1で作ったGoogleカレンダーにアクセスしてイベントを作成します。
例えば,上の画像の様に設定します。
イベント名には「Discordで投稿したい内容」をそのまま書きます。
時間,日付は自分がやりたい内容に弄ってください。
サンドワームのように毎週繰り返すイベントの場合は,繰り返しをクリックし,「カスタム」から毎週金土日を選べば簡単です。
アジトの税金のように10日に一度や,毎週平日だけなんていう日程を作ることもできます。
入力が終わったら「保存」を押すだけ。
カレンダー上に日程が表示されることを確認しましょう。
以上を全て適切に設定すると,2-2で指定した時間だけ前に,カレンダーの件名を丸ごとDiscordに投稿してくれます。
例えばこんな日程を作ると
こんな感じで呟いてくれます。
投稿する内容を細かく弄りたい場合は,「Message text」の中をいじれば割となんでもできます。が,細かい事は面倒なのでググってください。
最初は適当なテスト用イベントを作って,動作するか確認した方が良いでしょう。
(30分前に設定しているなら,今から33分後に適当なイベントを作ってみる,など)
また,Googleカレンダーの共有設定を弄り,例えばクランの君主と副君主に予定を作成・編集する権限を与えると,誰でもリマインダーを作ることができます。
カレンダー共有の仕方はリンク先の「カレンダー連携確認」が詳しいのでそちらをどうぞ。
それでは皆様,よいゲームライフを。
■□ いいね!はこちらに ⇒ Linege Link Ranking □■