- あらかじめDiscord Botを作成しておく。
Manage Events
、Create Events
、Send Messages
の権限が必要。 - また、Cloudflare Workersの設定・デプロイにwranglerを使用する場合は、導入とログインを済ませておく。
- リポジトリをクローンし、
npm install
で依存関係をインストールする cf-workers
ディレクトリに移動した上で、wrangler secret put <キー名>
を実行し以下を設定する
キー | 値 |
---|---|
WORKERS_TOKEN | トークンを自分で適当に生成し設定。6のトークンと共通のものを使う |
DISCORD_BOT_TOKEN | Discordのbotトークン。OAuthの設定にあるClient Secretではないので注意 |
npm run deploy
などでCloudFlare Wokersにデプロイnpm run -w gas tsc
を実行し、gas/dist/main.jsの内容をGASにコピペする- 2行目の
Object.defineProperty(exports, "__esModule", { value: true });
を削除する - GASのエディタにある、「プロジェクトの設定」→「スクリプト プロパティ」で、以下のように設定する
プロパティ | 値 |
---|---|
WORKERS_TOKEN | トークンを自分で適当に生成し設定。2のトークンと共通のものを使う |
apiRoot | Cloudflare Workersのルートパス。https://google-calendar-discord-notify.xxx.workers.dev/api のような形式 |
calendarId | Google CalendarのCalendar ID。設定みたいな項目から確認できる |
guildId | イベントを作成するDiscordサーバーのguild ID |
notifyChannelId | 通知を送るDiscordチャンネルのchannel ID |
announceChannelId | アナウンス通知を送るDiscordチャンネルのchannel ID |
messagePrefix | 通知のメッセージの先頭につける内容。メンションなどに使うとよい |
- GASのトリガーを設定。GASエディタの、「トリガー」→右下にある「トリガーを追加」を押して、出てきたウィンドウで以下のように設定する
項目 | 内容 |
---|---|
実行する関数を選択 | main |
実行するデプロイを選択 | Head |
イベントのソースを選択 | カレンダーから |
カレンダーの詳細を入力 | カレンダー更新済み |
カレンダーのオーナーのメールアドレス | Calendar ID。ユーザーのメールアドレスではない |
- 一度
main
関数を実行する。権限を求めるウィンドウが表示されるので、許可する
npmのworkspace機能を使用しています。パッケージを追加する場合などは、それを念頭にお願いします。