Google Apps脚本:找不到端点

时间:2014-10-27 18:01:15

标签: google-apps-script

我在Google文档插件中遇到问题,该插件作为网络应用运行,用户同时登录多个Google帐户,然后当他们尝试使用第三方应用授权他们的访问权限时令牌已保存到错误的Google帐户。

我想解决这个问题的方法是通过在状态参数中传入授权用户的电子邮件来检查当前用户的电子邮件,然后重新构建重定向URL以包含authuser参数和电子邮件正确的帐户,然后重定向到该终点。但是,我在创建实际有效的新重定向网址时遇到了问题。

我的常规OAuth重定向将我带回/exec端点的脚本。在我的doGet()内,我检查状态参数是否等于Session.getActiveUser().getEmail()的值。如果没有,那么我构建了一个指向我的/exec端点的新重定向URL,除了我还添加了一个authuser参数以及一个redir参数,该参数告诉应用程序在下次通过时不尝试构建新的重定向{ {1}}。然后,我输出一个名为userAuth的HTML页面。 userAuth页面包含一个链接,供用户使用包含authuser的新重定向进行单击。问题是,当您点击此链接时,您会收到一个"抱歉,您请求的文件不存在。"错误信息。

第二次尝试请求时,我的doGet()端点发生了什么,使其不存在?我有更好的办法吗?

更新:我发现仅当我发送的/exec参数值与当前授权的参数值不同时,才会找到/exec个端点谷歌。我误解了authuser参数的作用吗?我认为,由于用户已登录这两个Google帐户,authuser会指定哪个帐户使用该插件。

我的authuser代码如下。谢谢你的帮助!

doGet()

1 个答案:

答案 0 :(得分:0)

啊,就是这样。谢谢,埃里克!我正在开发并运行一个测试域的脚本,该域只允许从域内访问Web应用程序。我用来测试的第二个帐户来自gmail。

我之前没想过gmail帐户最初无法访问网络应用的原因是因为我成功点击/exec端点并显示了userAuth html页面。但是,当我点击链接返回/exec时,我看到了404.

事后看来,这是显而易见的,因为我第一次点击/exec时,第一次有权访问网络应用的帐户。第二次点击/exec时,第二个帐户无法访问网络应用。

我将Apps脚本移出测试域之外,并部署了网络应用以允许访问任何人,重定向工作正常。