【问题标题】:Drive API Push Notifications for a Google Apps Script Web App为 Google Apps 脚本 Web 应用程序驱动 API 推送通知
【发布时间】:2021-01-08 20:42:32
【问题描述】:

我想使用 Google Drive API 和使用 Google Apps 脚本设置的网络挂钩设置推送通知。我不知道这是否可能。

我无法弄清楚的部分步骤是domain verification steps. 我有一个使用 doGet 发布的网络应用程序,如下所示:

function doGet() {
  refreshCandidates();

  return HtmlService.createHtmlOutput('<b>google site verification</b>')
  .addMetaTag('google-site-verification', 'Iu3xxxxxx')
  .setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

当我尝试验证 url 时,它给了我 https://script.google.com/...ZS2/exec 作为端点。但是当我尝试验证它是否击中https://script.google.com/...ZS2/exec/ 并找到一个完全不同的元标记。

有没有人成功地使用了驱动 api 并通过谷歌应用脚​​本推送通知?我错过了什么?

【问题讨论】:

    标签: google-apps-script google-drive-api


    【解决方案1】:

    很遗憾,无法再验证 GAS Web App 的 URL。直到 2019 年 8 月左右,应用脚本编辑器的“发布”菜单下还有一个“在 Chrome 网上应用店注册”选项。那时,任何如此注册的 Web 应用程序都会自动验证其 URL。但是,该选项已被删除,搜索控制台下可用的验证方法根本不适用于 GAS Web 应用程序网址。

    此外,即使验证可行,也无法有效地利用 Drive Push 通知,因为所有相关通知信息都存储在 HTTP 标头中,而 GAS doPost() 函数无法访问这些标头。

    Google Apps 脚本不再是在大多数服务(Gmail、 Drive、Calendar、Admin Directory 等)中实施 Google API 推送通知的可行平台。如果您想坚持使用 Google 的云产品,您可以探索其他替代方案。 Google Cloud Functions 就是这样一种选择。


    更新:Gmail 利用 Cloud Pubsub 进行推送通知,该服务最近已更新,无需对推送端点进行域验证。因此,现在可以在这种情况下使用 GAS Web 应用 URL。

    【讨论】:

    • 这完全是正确的答案。我最终按照建议转移到云功能。谢谢!
    【解决方案2】:

    目前,似乎无法使用来自搜索控制台的 Google 站点验证来验证使用 Google 应用脚本发布的 Web 应用。

    已向 Google 提出功能请求。可以通过here 跟踪该问题。考虑为 Google 添加星号(左上角)来确定问题的优先级。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 2014-05-19
      • 1970-01-01
      • 1970-01-01
      • 2018-07-06
      • 1970-01-01
      相关资源
      最近更新 更多