跳到主要内容

Google 日历(每日摘要)

描述

用户指南

将一个或多个 Google 日历关联到您的服务器:机器人每天发布一份即将到来的活动摘要,还可以显示一个互动面板,让每位成员自行订阅提前一天的私信提醒。

功能介绍​

  • 在您指定的频道和时间发布未来 30 天活动的每日摘要。
  • 显示互动式活动面板:支持翻页、自动刷新以及距下次更新的倒计时。
  • 向在面板上订阅了某个活动的成员发送提前一天的私信提醒。
  • 同时跟踪多个日历:公开日历(无需登录即可读取)或私人日历(通过已连接的 Google 账号读取)。
  • 遵循您为服务器设定的时区。

您需要在 Google 一侧准备什么​

您无需在 Google 创建任何东西:不需要 Google Cloud 项目,不需要 API 密钥,也不需要 OAuth 凭据。这些都由 TennoCore 提供。根据日历类型,您只需准备:

公开日历​

  1. 日历 ID。在电脑上打开 calendar.google.com → 将鼠标悬停在"我的日历"中的日历上 → ⋮ 菜单 → 设置和共享 → 整合日历部分 → 复制日历 ID。
  2. 该日历必须设为公开:同一页面 → 活动的访问权限 → 向公众开放。否则机器人无法读取。

也可以用包含 cid= 的 Google 链接代替日历 ID。

私人日历​

  1. 需要一位成员(通常是您)连接自己的 Google 账号:点击仪表板上的连接我的 Google 账号按钮,或在 Discord 上使用 /agenda connect。Google 会显示一个验证码,请在专用页面输入。所申请的授权为日历的只读权限。
  2. 账号连接完成后,将其选为所有者,并从提供的列表中选择日历。此时该日历无需公开。
备注

私人日历通过授权账号的令牌读取。如果该成员断开了自己的账号连接,依附于该账号的私人日历也将无法继续读取。

快速开始(管理员)​

  1. 设置时区:/agenda timezone tz:Europe/Paris。
  2. 添加日历:/agenda calendrier ajouter_public calendar_id:<ID>(也可以通过仪表板操作)。
  3. 选择频道和时间:/agenda digest config_responses channel:#agenda hour:9。
  4. 检查显示效果:/agenda digest tester。
  5. 启用每日发送:/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 令牌。服务器的公开日历仍可正常工作,但依赖您账号的私人日历将失效。