【问题标题】:WhiteListing dynamic URLs for Google Sheets Add-On for user configured URLs将用户配置 URL 的 Google 表格插件的动态 URL 列入白名单
【发布时间】:2021-12-07 00:35:12
【问题描述】:

我正在尝试创建一个 Google 表格插件,它使用 API 连接到客户自己的财务系统,该系统部署在他们自己的网站上。该站点的 url 是可配置的,因此我们只需要部署一个版本的插件,我们所有的客户都可以为他们自己的系统配置它。

//getServiceURL() returns the configured URL for the clients system, so https://clientsite/financeapi/
restRequest = UrlFetchApp.fetch(getServiceURL(), params);

我遇到的问题是,我似乎需要在 appsscript.json 文件的“urlFetchWhitelist”中明确引用 url。否则我会得到错误:-

Exception: Request to https://clientsite/financeapi/blahhh/blahhh failed because the URL has not been whitelisted in the script manifest. (line 510, file "Service")

所以我需要将它添加到 appsscript.json 文件中。

"urlFetchWhitelist": ["https://clientsite/financeapi/"]

有什么办法可以解决这个问题,因为我在设计时不知道这些 URL,因为这些 URL 可以由客户端配置,因此不需要显式定义?
如果没有,我想我们可以询问每个客户我们需要联系哪些 URL,并将这些 URL 添加到白名单中。在这种情况下,白名单 URL 的数量是否有限制,因为我们将有数百个。如果我们定义这些客户端 URL,最终用户是否可以看到此列表,因为出于安全原因,我们无法让所有用户都看到这些列表。

【问题讨论】:

    标签: google-apps-script google-sheets whitelist


    【解决方案1】:

    似乎有no way to directly bypass this requirement,但我想你可以创建一个网络应用程序,作为插件和 API 之间的一个层:

    Addon <-> WebApp <-> API
    

    这意味着您只需要将 Web 应用的 URL 列入白名单,然后您就可以在 Web 应用中灵活地处理对 API URL 的任何更改。

    【讨论】:

    • 谢谢 Dmitry,我没有考虑过使用 WebApp。我必须承认我还没有使用过 Google WebApps,所以我需要先做一些研究,看看这是否是一个前进的方向。
    猜你喜欢
    • 1970-01-01
    • 2020-04-23
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2019-10-05
    相关资源
    最近更新 更多