Migdal

かえる
かえる

Posted on

ZpDICのAPIで、Discordにお手軽ランダム単語自動定期投稿チュートリアル【令和最新版】

先日、ZpDIC Online APIが遂に公式実装されました!
今回の記事では、このAPIの恩恵に最速で与るべく、Webhookを用いてZpDIC上の人工言語辞書内のランダムな単語を一定の間隔でDiscordに投稿し続けるスクリプトを構築する方法を解説していきます。

1. 下準備

このチュートリアルでは、Google Apps Script (GAS)を用いて定期投稿を実現します。このテンプレートを開き、右上のメニューより皆さん自身のGoogleドライブにコピーを作成してから作業を始めましょう!

2. APIキーの発行、DiscordでWebhookの作成

APIキーに関してはZpDICのドキュメントに詳しく記載があるので、こちらも読んでおきましょう。
ユーザーページ > 開発向けと進んでZpDICのAPIキーを発行し、控えておきます。このキーは機密情報なので、くれぐれも管理は厳重に!

APIキーの発行

続いてDiscord上で外部から単語を投稿できるように、Webhookを作成します。権限を持っているDiscordサーバーでサーバー設定 > アプリ > 連携サービス > ウェブフックと進むと作成できます。URLをコピーして、先程のAPIキーと同様に控えておいて下さい。
投稿時の名前やアイコンもここで設定できるので、自分の好きなように設定してしまいましょう!

Webhookを作ろう

3. スクリプトの設定

ここからはいよいよ先程のテンプレートを使った作業です!
まずは控えておいたAPIキーとWebhookのURLを、機密情報を格納するためのプロパティサービスに保存しましょう。GASの画面左側から「プロジェクトの設定」 > スクリプト プロパティに進み、それぞれ下の例に倣ってAPI_KEYDISCORD_WEBHOOKとして書き込みます。プロパティの名前も例に合わせておいて下さい。

GASに書き込み

次に、画面左側からエディタ > main.gsと進み、ZpDIC上での辞書の識別子を記述します。識別子はZpDICで辞書画面を開いてURLのdictionary/の後ろ部分、例えば第三期雰和辞典なら「1197」です。独自に設定している辞書ではそれをお使い下さい。

識別子の記述例

4. 試しに実行!

ここまで完了したら、早速自動投稿を試しに実行してみましょう!コードエディタ上部の「実行」ボタンを押すとスクリプトが走ります。初回の実行ではGoogleにアクセス権限を求められるので、画面の通りに進んで許可しましょう。

先ほどWebhookを設定しておいたDiscordチャンネルに無事ランダムな単語が投稿されているのを確認できれば、ひとまず成功です!

Discord投稿の成功例

5. 定期実行の設定

最後に、このスクリプトが定期的に実行されるように設定します!
再び画面左側からトリガー > トリガーを作成と進み、各種設定を行います。実行する関数はmain、実行するデプロイはHeadを指定し、イベントのソースは時間主導型を選択してお好みの間隔を設定しましょう!(下図は1時間おきに設定する場合の例)

1時間間隔の場合の設定例

これを保存して定期的にスクリプトが実行されるようになれば、このチュートリアルは完走です!お疲れ様でした。

あとがき

最速を目指す都合上、今回のスクリプトでは訳語のみを投稿する仕様としていますが、少し手を加えて説明欄まで表示させてみても楽しいかもしれません。

皆さんも、是非APIの恩恵を最大限享受しましょう!

Top comments (0)