用户配置url的Google Sheets Add-On动态url白名单



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

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

我的问题是,它看起来像我需要显式地引用appscript中的"urlFetchWhitelist"中的url。json文件。否则我得到错误:-

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,这个列表是否对最终用户可见,因为出于安全原因,我们不能让这些对所有用户可见。

似乎没有办法直接绕过这个要求,但我猜你可以创建一个web应用程序,作为你的附加组件和API之间的层:

Addon <-> WebApp <-> API

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

最新更新