【发布时间】:2020-06-30 01:16:27
【问题描述】:
借助 Google Calendar 的 API,我编写了一个 Python 脚本,允许我从外部连接的源检索日历事件并将它们插入到我的 Google 日历中。当我从命令行执行脚本时,它在本地工作,但我想让它自动发生,以便外部添加的事件自动弹出在我的 Google 日历中。
似乎 cron 作业是执行此操作的最佳方式,并且鉴于我使用了 Google 日历的 API,我认为将 Cloud Functions 与 Cloud Scheduler 结合使用可能会有所帮助。但是,我真的不知道从哪里开始,如果这甚至可能,因为访问 API 需要使用 Google 对我的个人 Google 帐户进行 OAuth,这是我认为服务帐户(我认为我需要)做不到的代表我。
我需要采取哪些步骤才能允许我手动运行并使用 Google 日历对我进行身份验证的脚本每 60 秒在云中运行一次,这样我就不需要一直打开计算机?
我尝试做的事情:
我创建了一个具有完全权限的服务帐户,并尝试创建一个 http-trigger 事件,理论上该事件会在点击创建的 URL 时运行脚本。但是,它只返回一个 HTTP 500 错误。 我尝试使用 Pub/Sub 事件目标来监听和执行脚本,但这也不起作用。
我很困惑:
使用任一帐户,都需要有一个credentials.json 文件才能登录;这个文件如何与主函数一起“部署”?以及首次进行身份验证时创建的token.pickle 文件。
【问题讨论】:
-
我需要采取哪些步骤才能允许我手动运行并使用 Google 日历对我进行身份验证的脚本每隔 60 秒在云端运行一次,这样我就不需要了让我的电脑一直开着? 为什么不自己动手,遇到障碍才问问题呢?就目前而言,这太宽泛/模糊了。请参阅How to Ask、help center。
-
@AMC 我已经编辑以包含我已经尝试过做的事情......已经为此努力了几个小时
-
如果您希望它在云中运行,Apps Script 不适合您吗?它旨在与 Google 服务协同工作,甚至像 cron 一样具有 time-based triggers。
-
@RafaGuillermo 可能并不不幸,因为 Apps Script 看起来像它在 JavaScript 中工作,而且我最初用来检索数据的 API 是用仅用于 Python 的包装器编写的
-
这很容易。 1/扔掉python库,直接调用https端点。 2/ 请参阅stackoverflow.com/questions/19766912/… 了解如何创建和使用刷新令牌
标签: python google-cloud-functions google-calendar-api google-oauth google-cloud-scheduler