Googleカレンダー(毎日のダイジェスト)
説明
ユーザーガイド
1つ以上のGoogleカレンダーをサーバーに連携させると、Botが毎日、今後の予定のまとめを投稿します。また、各メンバーが前日リマインダーをダイレクトメッセージで受け取るために登録できる、対話式のパネルも表示できます。
機能
- 今後30日間の予定の毎日のダイジェストを、指定したチャンネルと時刻に投稿します。
- 対話式のイベントパネルを表示します。ページ送り、自動更新、次回更新までのカウンター付きです。
- パネルからイベントに登録したメンバーに、前日リマインダーをダイレクトメッセージで送信します。
- 複数のカレンダーを同時に監視できます。公開カレンダー(ログインなしで読み取り)と非公開カレンダー(連携したGoogleアカウント経由で読み取り)の両方に対応します。
- サーバーに設定したタイムゾーンに従います。
Google側で用意するもの
Google側で作成するものは何もありません。 Google Cloudプロジェクト、APIキー、OAuthの認証情報はいずれも不要です。これらはTennoCoreが提供します。カレンダーの種類に応じて、必要なものは次のとおりです。
公開カレンダー
- カレンダーID。パソコンでcalendar.google.comを開き、「マイカレンダー」でカレンダーにカーソルを合わせ → ⋮ メニュー → 設定と共有 → カレンダーの統合セクション → カレンダーIDをコピーします。
- カレンダーを公開にする必要があります。同じページの アクセス権限 → 一般公開して誰でも利用できるようにする。これを行わないと、Botはカレンダーを読み取れません。
IDの代わりに、cid= を含むGoogleのリンクを指定することもできます。
非公開カレンダー
- メンバーの誰か(多くの場合はあなた自身)がGoogleアカウントを連携する必要があります。ダッシュボードのGoogleアカウントを連携ボタン、またはDiscordの
/agenda connectを使用します。Googleが表示するコードを専用ページに入力します。要求される権限はカレンダーに対する読み取り専用です。 - アカウントを連携したら、それを所有者として選択し、表示される一覧からカレンダーを選択します。この場合、カレンダーを公開する必要はありません。
注記
非公開カレンダーは、それを許可したアカウントのトークンで読み取られます。そのメンバーがアカウントの連携を解除すると、紐づいていた非公開カレンダーは読み取れなくなります。
クイックスタート(管理者)
- タイムゾーンを設定します:
/agenda timezone tz:Asia/Tokyo。 - カレンダーを追加します:
/agenda calendrier ajouter_public calendar_id:<ID>(ダッシュボードからでも可)。 - チャンネルと時刻を選びます:
/agenda digest config_responses channel:#カレンダー hour:9。 - 表示を確認します:
/agenda digest tester。 - 毎日の送信を有効にします:
/agenda digest enable_module。
コマンド
Googleアカウント(全員)
| コマンド | 説明 |
|---|---|
/agenda connect | Googleアカウントを連携(Googleのページでコードを入力)。 |
/agenda me | Googleとの連携状態を確認。 |
/agenda disconnect | 連携を解除し、Googleのトークンを削除。 |
/agenda my_events | 自分の次の5件の予定を非公開で表示。 |
/agenda publish | 対話式のイベントパネルを投稿。 |
/agenda digest tester | テスト用のダイジェストを直ちに投稿。 |
/agenda publish のパラメーター:channel(省略時は現在のチャンネル)、days(1〜60日の期間、初期値は30)、refresh_every(30〜3600秒の自動更新間隔、初期値は300)。
監視するカレンダー
| コマンド | 説明 |
|---|---|
/agenda calendrier lister | このサーバーが監視しているカレンダーを一覧表示。 |
/agenda calendrier ajouter_public | 公開カレンダーを追加(IDまたは cid= を含むリンク)。表示名は任意。(管理者) |
/agenda calendrier ajouter_prive | 連携済みメンバーのGoogleアカウントを利用して非公開カレンダーを追加。(管理者) |
/agenda calendrier retirer | 監視中のカレンダーを削除(IDは自動補完されます)。(管理者) |
毎日のダイジェスト
| コマンド | 説明 |
|---|---|
/agenda digest config_responses | 送信するチャンネルと現地時刻(0〜23)を指定。(管理者) |
/agenda digest enable_module | 毎日の送信を有効化。(管理者) |
/agenda digest desactiver | 毎日の送信を無効化。(管理者) |
/agenda timezone | サーバーのタイムゾーンをIANA形式で設定。(管理者) |
ダッシュボードでの設定
ダッシュボード → ツールとスタッフカテゴリ → Google Calendarスケジュール。
- ダイジェストの設定:投稿するチャンネル、送信時刻(0〜23)、タイムゾーン(Europe/Paris、UTC、America/New_York)、有効化スイッチ。
- 非公開カレンダー:連携済みGoogleアカウントの一覧(メールアドレス付き)、追加で連携するボタン、連携を解除するボタン。
- カレンダー:監視中のカレンダーの一覧。公開/非公開を示すアイコン、ID、所有アカウントが表示されます。追加時のウィンドウでは、まず種類を選びます。
- 公開:IDを貼り付けます(展開できるヘルプでIDの見つけ方を案内しています)。
- 非公開:連携済みアカウントを選び、そのアカウントの一覧からカレンダーを選びます。
- いずれの場合も、表示名を付けられます。
- 予定のプレビュー(30日):直近10件の予定を日ごとにまとめて表示し、Google Calendarへのリンクを添えます。
- ダイジェストをテスト:設定済みのチャンネルに直ちにダイジェストを投稿します。
監視できるカレンダーの数はプレミアムでないサーバーでは3つに制限されています(初期値であり、TennoCoreチームが調整できます)。
知っておきたいこと
- ダイジェストは5分ごとに確認され、指定した時刻の間に1日1回だけ投稿されます。その1時間の間ずっとBotが利用できなかった場合、その日のダイジェストは単に見送られ、後から送られることはありません。
- ダイジェストは常に30日間を対象とし、1ページあたり25件の予定を表示します。
- カレンダーが設定されていない場合、
/agenda publishは投稿を行わず、カレンダーの追加を促します。 - イベントパネルは一時的なものです。 操作のないまま15分が経過するとボタンが反応しなくなり、自動更新も停止します。常設の表示が必要な場合は、パネルではなく毎日のダイジェストを使用してください。
- 今すぐ更新、前日に通知する、通知を解除するの各ボタンは、コマンドを実行したメンバー専用です。他のメンバーが押すと拒否されます。そのため、登録したい人はそれぞれ自分のパネルを投稿するか、ダイジェストのパネルを利用する必要があります。
- 前日リマインダーはダイレクトメッセージで届きます。 ダイレクトメッセージを受け取らない設定にしているメンバーには届きません。リマインダーは1分ごとに確認されます。
- タイムゾーンは送信時刻と日付の表示の両方を左右します。ダッシュボードでは3つのタイムゾーンのみ選択できますが、
/agenda timezoneはIANA形式の任意の名前を受け付けます(Europe/Brussels、America/Sao_Pauloなど)。 - ダイジェストのチャンネルで、Botにはメッセージを送信および埋め込みリンクの権限が必要です。
/agenda disconnectはTennoCore側に保存されたあなたのGoogleトークンを削除します。サーバーの公開カレンダーはそのまま機能しますが、あなたのアカウントに依存していた非公開カレンダーは機能しなくなります。