检测脚本是否已具有授权

时间:2016-06-15 18:29:35

标签: google-apps-script

我最近更改了多个通讯组的电子邮件地址,我想帮助用户从联系人列表中删除旧地址,这样他们就不会意外地将电子邮件发送到以太网。 Admin SDK不提供对其他用户的联系人的访问权限,因此我制作了一个脚本(编辑:部署为Web应用程序),该脚本以键盘上的用户身份运行以删除相关组。但是,当页面加载时,会自动提示它们进行授权。

为避免混淆,我希望在此之前显示解释信息。为此,我需要检测用户是否已授予所需操作的授权。

我在旧的添加中看到了类似的行为。在这种情况下,作者使用了ScriptProperties.getProperty('scriptAuthorized'),但现在已弃用。有谁知道如何做到这一点?

1 个答案:

答案 0 :(得分:0)

我找到了一种解决方法,我认为这可能是解决此问题的唯一方法。

请记住,网络应用程序设置为以键盘上的用户身份运行,而不是像我一样。这是必需的,以便应用可以访问用户的联系人。这样做的一个结果是即使doGet(e)函数也需要授权。这意味着没有授权就无法显示任何内容。这使我原本意图检测脚本授权没有实际意义。即使它没有,我相信即使是检查授权的行为也需要授权。

我对此问题的解决方案是创建第二个Web应用程序,以用作真实Web应用程序的门户。此门户网站应用程序作为ME而不是键盘上的用户运行,因此不需要加载授权。我无法检测他们是否需要授权,但我至少可以向他们提供他们可能会遇到对话的信息。

我已经为门户网站添加了(非常简单的)html:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
  <p>
    This tool will erase all of the old, irrelevant contact groups. <br>
    When you click below, you may be prompted to authorize this app. Please do so.
  </p>

  <div>
     <a href='https://link.to.script'> <input type='button' value='Click here to begin'></a>
  </div>

  </body>
</html>

我认为我也会将此策略用于其他一些目的,因此我利用此讨论中的解决方案从一个网络应用中提供多个html网页:Linking to another HTML Page in Google Apps Script

相关问题