Google Calendar
Macro Deck 自带在面板上显示 Google Calendar 事件,为下一场会议倒计时,并一键加入会议。
日历组件,显示未来几天的日程、带倒计时的下一个日程和精简日程
- 在日历组件上显示日程和下一个事件
- 在事件开始前、开始时和结束后触发
- 一键加入当前会议
- 可连接多个 Google 账号
- 对日历仅有只读访问权限
Google Calendar 集成读取 Google 账号中的日历,并将其事件提供给 Macro Deck 的日历功能:日历 组件、日历触发器和 加入会议 动作。Macro Deck 只读取事件。它绝不会创建、更改或删除事件。
Macro Deck 通过你自己在 Google Cloud 中创建的 OAuth 客户端进行连接。设置是免费的,并且只需要做一次;Macro Deck 中的设置会一步步引导,并链接到 Google Cloud Console 中的相应页面。之后,在浏览器中用 Google 账号登录,并允许 Macro Deck 查看日历即可。
可以做什么
- 日历组件: 日程 布局列出即将开始的事件,下一个事件 布局为下一个事件倒计时。按下它可以查看事件详情,包括地点、说明、受邀人员以及 加入会议 按钮。
- 触发器: 事件即将开始、事件已开始 和 事件已结束 可以在自动化或组件上围绕会议运行动作。它们可以限定为某个账号或某个日历。
- 加入会议: 在运行 Macro Deck 的电脑上打开正在进行或即将开始的事件的会议链接。
一些示例设置:
- 面板上一个使用 加入会议 的按键,无需寻找链接即可加入当前通话。
- 一个由 事件即将开始 触发的自动化,在工作日历中每个事件开始前 5 分钟将音乐静音。
- 一个由 事件已结束 触发的自动化,将面板切换回日常使用的配置文件。
运行方式
Macro Deck 每五分钟读取一次日历,范围从昨天到大约一周之后。刷新日历 动作会立即读取。重复事件会显示每一次的发生。在 Google Calendar 自己的列表中隐藏的日历,在 Macro Deck 中也会被略过。
可以连接任意数量的 Google 账号,每个都作为单独的配置,同一个 OAuth 客户端可用于所有账号。当某个账号无法读取时,组件会保留其最后已知的事件,并提示部分日历无法更新,集成 中也会为该账号显示提示。
日历组件显示的所有内容,包括说明和参与者,都可以在连接到 Macro Deck 的每台设备上看到。
准备工作
- Windows、macOS 或 Linux 上的 Macro Deck 3
- 使用 Google Calendar 的 Google 账号
- 已启用 Google Calendar API 的 Google Cloud 项目
- 类型为 Desktop app 的 OAuth 客户端 ID,以及其客户端 ID 和客户端密钥
- 运行 Macro Deck 的电脑上有浏览器,用于登录 Google
设置步骤
第 1 步: 打开 Google Calendar 设置
在侧边栏中点击 集成,然后点击 Google Calendar。在 概览 选项卡的 配置 下点击 添加配置。打开右上角的开关也会打开同一个对话框,完成设置后集成即会启用。连接 Google 日历 对话框会列出以下步骤,附带 Google Cloud Console 的链接以及可复制的 重定向 URI。
第 2 步: 启用 Google Calendar API
在 Google Cloud Console(
https://console.cloud.google.com)中创建或选择一个项目,并为其启用 Google Calendar API。设置中以 启用 Google Calendar API 链接到该页面。第 3 步: 设置 OAuth 同意屏幕
设置项目的 OAuth 同意屏幕,并将其发布状态设为 In production。如果一直处于 Testing 状态,Google 会在 7 天后结束每次登录,这样每周都得重新连接账号。
第 4 步: 创建 Desktop app 客户端
在 APIs & Services > Credentials 下创建一个应用类型为 Desktop app 的 OAuth 客户端 ID。Desktop app 客户端会接受设置中显示的 重定向 URI,例如
http://127.0.0.1:8193/api/integrations/oauth/callback,无需在任何地方添加。第 5 步: 输入客户端 ID 和密钥
将新客户端的客户端 ID 和客户端密钥复制到对话框的 客户端 ID 和 客户端密钥 字段中,然后点击 继续。浏览器会打开 Google 登录页面。Google 会警告它尚未验证该应用;对于自己的客户端来说这是正常的。选择 Advanced,继续前往你的应用,并允许访问日历。
第 6 步: 添加日历组件
在 面板 页面添加一个 日历 组件。在其设置中选择 布局(日程 或 下一个事件)以及要显示的 日历。将 日历 留空即可显示所有已连接的日历。
第 7 步: 为按键添加“加入会议”
在 面板 页面上,确认面板已解锁(右上角的按钮显示为 锁定),然后点击一个按键。编辑器打开时已选中 短按。点击 + 添加动作,在 添加动作 对话框左侧选择 日历,然后选择 加入会议。开始时间范围 设置提前多久加入即将开始的事件,默认为 15 分钟;日历 可将其限定为某个日历。
动作3
可以放在按键上,也可以在流程中运行。
- 加入会议
- 在运行 Macro Deck 的电脑上打开正在进行或即将开始的事件的会议链接。
- 刷新日历
- 立即读取所有已连接日历的事件,而不是等待下一次更新。
- 显示日历详情
- 打开日历组件的详情:“下一个事件”布局显示的事件,或“日程”的列表。
触发器3
按键或流程可以对这些事件做出响应。
- 事件即将开始
- 在日历事件开始前的设定时间运行,默认为 15 分钟。
- 事件已开始
- 日历事件开始时运行。
- 事件已结束
- 日历事件结束时运行。
变量1
在按键和组件上显示这些值,或在条件中使用它们。
calendar_next_title,calendar_next_countdown,calendar_next_minutes,calendar_next_meeting_url- 每个日历组件为其所显示的事件保存的组件变量:标题、倒计时、距开始的分钟数以及会议链接。组件还会保存事件的开始时间、结束时间、地点和所属日历,以及事件是否正在进行。
组件1
从组件选择器中将它们添加到面板。
- 日历
- 以日程形式显示即将开始的事件,或显示带倒计时的下一个事件。
常见问题解答
为什么需要自己的 Google Cloud 客户端?
Macro Deck 通过你自己的 OAuth 客户端读取 Google Calendar。它是免费的,设置中会链接到所需的每个页面。同一个客户端可用于连接的所有 Google 账号。
为什么 Google 每周都要求重新登录?
Google Cloud 客户端的 OAuth 同意屏幕仍处于 Testing 状态,Google 会在 7 天后结束每次登录。请将其发布状态设为 In production,然后在 Google Calendar 页面上通过账号旁边的 编辑连接 重新登录。
可以连接多个 Google 账号吗?
可以。在 Google Calendar 页面上点击 添加配置,然后用另一个账号登录。如果连接了一个已连接的账号,集成 会显示 Google 账号被连接了两次:请移除较早的配置。
Macro Deck 能访问哪些内容?
Macro Deck 只向 Google 请求日历的只读访问权限和用于标识账号的电子邮件地址。客户端密钥和登录信息加密存储在运行 Macro Deck 的电脑上,客户端密钥只会发送给 Google。
新事件为什么没有立即显示?
Macro Deck 每五分钟读取一次日历。使用 刷新日历 动作可以立即读取。大约一周之后的事件不会被读取。
登录后为什么没有返回 Macro Deck?
请检查 OAuth 客户端的应用类型是否为 Desktop app;其他类型只接受自行注册的重定向地址。如果 Macro Deck 只接受 HTTPS,请在 设置 > 网络 中将 监听器模式 设为 使用额外的 HTTPS 端口,或者在连接账号期间关闭 HTTPS。
“日历和电子邮件”分类中的更多集成
Outlook Calendar
Macro Deck 自带在面板上显示 Outlook 和 Microsoft 365 日历,一键加入 Teams 会议。
电子邮件 (IMAP)
Macro Deck 自带在面板上查看任意 IMAP 收件箱的未读邮件和最新邮件,并在收到邮件时做出响应。