Google 日历(每日摘要)
描述
用户指南
将一个或多个 Google 日历关联到您的服务器:机器人每天发布一份即将到来的活动摘要,还可以显示一个互动面板,让每位成员自行订阅提前一天的私信提醒。
功能介绍
- 在您指定的频道和时间发布未来 30 天活动的每日摘要。
- 显示互动式活动面板:支持翻页、自动刷新以及距下次更新的倒计时。
- 向在面板上订阅了某个活动的成员发送提前一天的私信提醒。
- 同时跟踪多个日历:公开日历(无需登录即可读取)或私人日历(通过已连接的 Google 账号读取)。
- 遵循您为服务器设定的时区。
您需要在 Google 一侧准备什么
您无需在 Google 创建任何东西:不需要 Google Cloud 项目,不需要 API 密钥,也不需要 OAuth 凭据。这些都由 TennoCore 提供。根据日历类型,您只需准备:
公开日历
- 日历 ID。在电脑上打开 calendar.google.com → 将鼠标悬停在"我的日历"中的日历上 → ⋮ 菜单 → 设置和共享 → 整合日历部分 → 复制日历 ID。
- 该日历必须设为公开:同一页面 → 活动的访问权限 → 向公众开放。否则机器人无法读取。
也可以用包含 cid= 的 Google 链接代替日历 ID。
私人日历
- 需要一位成员(通常是您)连接自己的 Google 账号:点击仪表板上的连接我的 Google 账号按钮,或在 Discord 上使用
/agenda connect。Google 会显示一个验证码,请在专用页面输入。所申请的授权为日历的只读权限。 - 账号连接完成后,将其选为所有者,并从提供的列表中选择日历。此时该日历无需公开。
备注
私人日历通过授权账号的令牌读取。如果该成员断开了自己的账号连接,依附于该账号的私人日历也将无法继续读取。
快速开始(管理员)
- 设置时区:
/agenda timezone tz:Europe/Paris。 - 添加日历:
/agenda calendrier ajouter_public calendar_id:<ID>(也可以通过仪表板操作)。 - 选择频道和时间:
/agenda digest config_responses channel:#agenda 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(可展开的帮助说明会告诉您在哪里找到它)。
- 私人:先选择已连接的账号,再从该账号的列表中选择日历。
- 两种情况下,您都可以设置一个显示名称。
- 活动预览(30 天):按日期分组的接下来 10 个活动,并附带指向 Google Calendar 的链接。
- 测试摘要:立即在已配置的频道中发布一份摘要。
非高级服务器跟踪的日历数量上限为 3 个(默认值,可由 TennoCore 团队调整)。
须知事项
- 摘要每 5 分钟检查一次,并且每天只发布一次,在您选定的那个小时内发送。如果机器人在整个小时内都不可用,当天的摘要会直接跳过——之后不会补发。
- 摘要始终覆盖 30 天,每页显示 25 个活动。
- 若未配置任何日历,
/agenda publish会拒绝发布,并提示您先添加一个。 - 活动面板是临时的:其按钮在无互动一刻钟后便不再响应,自动刷新也随之停止。若需要长期显示,请使用每日摘要而非面板。
- 立即刷新、提前一天提醒我和取消提醒这三个按钮仅限发起命令的成员使用:其他人点击会被拒绝。因此每位成员都需要发布自己的面板来订阅,或者使用摘要的面板。
- 提前一天的提醒通过私信发送:关闭了私信的成员将收不到。系统每分钟检查一次。
- 时区同时决定发送时间和日期的显示方式。仪表板只提供三个时区;
/agenda timezone接受任何 IANA 名称(Europe/Brussels、America/Sao_Paulo等)。 - 机器人需要在摘要频道中拥有发送消息和嵌入链接权限。
/agenda disconnect会删除您在 TennoCore 一侧的 Google 令牌。服务器的公开日历仍可正常工作,但依赖您账号的私人日历将失效。