我是否通过让多个用户访问Google Apps脚本中的第三方API来彻底改变了方向盘?

时间:2019-04-02 22:27:23

标签: rest google-apps-script google-sheets zoho

我正在开发一个系统,当通过Google表单提交表单时,脚本将从表单中获取数据,并将数据提交至该表单,然后在项目管理软件(Zoho项目)中建立一个项目,并根据提供的信息创建Google文件夹结构。

换句话说,一个Google表单是在其相应位置和软件中创建所有项目基础结构的位置。

为了使该系统正常运行,我需要有权访问该表单的每个用户,以便能够在与脚本相关联的每个软件上执行相同的操作,而不管他们的权限级别如何。

这使得脚本仅需使用一组在较高级别获得授权的第三方API凭据,并使表单的所有用户仅访问那些凭据才能获得所需的一致结果。

问题是我无法(或至少我认为我不能)将OAuth2.0库用于GAS,因为用户身份验证只能访问操作软件的用户拥有的数据;这将在代码中产生许多错误,因为在尝试执行需要高级别权限的相同任务时利用不同权限级别的凭据会产生许多错误,并导致脚本功能不一致。除此之外,因为我引用的是第三方API,所以没有“服务帐户”可用来代表高度授权的用户。

为解决此问题,我已经在Google Apps脚本中为此API构建了自己的包装器库,并构建了自己的身份验证系统,在该系统中,可以使用PropertiesService功能自动更新和管理用户凭据。我已经通过该系统建立了对高度授权的用户数据的访问。我会在脚本中访问这些数据,而不是通过OAuth2库对Google Apps脚本进行身份验证,以便允许该软件产生一致的结果。

我已经找到了适用于这种情况的我自己的方法,但是经过所有工作之后,我想知道是否重新发明了轮子。是否还有其他更成熟的方法可以让多个用户通过Google Apps脚本使用一组第三方API的凭据进行交互?还是这种独特的情况需要我提出的解决方案?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以改为使用GAS创建每次运行时都运行的webapp,然后在脚本运行后将相关的zoho和google驱动器文件的所有权传递给用户。