raspberry-pi - 如何在没有键盘的情况下从 Raspberry Pi 使用 Google Calendar API?
问题描述
我们可以在不同设备上获取 Google Calendar API 的凭据吗?
我们在 Raspberry Pi 上使用 Google Calendar API,并参考以下步骤。 https://developers.google.com/calendar/quickstart/python
我们通过以下步骤操作生成了凭据我们选择了电视和受限输入设备作为应用程序类型,然后下载了 JSON 文件。
凭据 > 创建凭据 > OAuth 客户端 ID https://console.developers.google.com/apis/credentials
我们的树莓派没有键盘和显示器。我们注意到“请访问此 URL 以授权此应用程序”中显示的 URL 通过 ssh。我们从 PC 浏览器访问 URL,并在将其绑定到日历后记下验证码。要“输入授权码”,我们输入它。
它按我们的预期工作。但这对我们的客户来说很难。
我们可以使用 PC 或智能手机进行此身份验证吗?在这种情况下,我们如何将 token.pickle 从 PC 或智能手机移动到 Raspberry Pi?可能我们想得太用力了。如果有更简单的方法,请告诉我们。我们只想使用 Google Calendar API。
解决方案
如果您没有 G-Suite 帐户,请使用 SSH 发送令牌
获得token.pickle 后,您无需“访问” URL 即可授权应用程序。无论如何,刷新令牌有其限制。由于以下原因之一,刷新令牌可能会停止工作:
- 用户已撤消您应用的访问权限。
- 刷新令牌已六个月未使用。
- 用户更改了密码,并且刷新令牌包含 Gmail 范围。
- 用户帐户已超过授予(实时)刷新令牌的最大数量。
请改用服务帐号(仅限 G-Suite 帐号)
token.pickle是第一次生成的。您提到的快速入门使用了用户凭据。但是,如果您只想在设备上使用一个令牌并在每台设备上查看不同的日历,我强烈建议您使用服务帐户并启用域范围的委派以模拟用户的日历。
为此:
参考
推荐阅读
- python - BeautifulSoup attrs 返回列表而不是字典
- java - 项目中的清单合并失败问题
- sql - 多个 SQL WITH 子句 - 为什么不呢?
- regex - 如何根据第一个字符串找到第二个字符串中缺少的内容?
- oracle - SQL*Plus 连接设置:ORA-12154 错误
- java - RatingBar 错误 - 尝试在空对象引用上调用虚拟方法
- ios - 创建缺少的 ios 配置导致“应用程序尚未注册错误”
- java - 使用 Mysql 在 Java 中使用外键从表中设置和获取列
- python - 张量流中的字符串连接
- angular - 如何从枚举类型中分配值