【问题标题】:Google script: cannot refer to users using Session.getActiveUser()Google 脚本:无法使用 Session.getActiveUser() 引用用户
【发布时间】:2013-05-19 02:46:21
【问题描述】:

我有一个像我一样执行的 Google 脚本。 在脚本中,我想知道用户的电子邮件。 因此,我将访问我的应用程序的用户的电子邮件称为 Session.getActiveUser().getEmail()

这根本行不通。 Google Script 报错,说 Session.getActiveUser().getEmail() 为 NULL。

当我手动输入一个虚拟电子邮件而不是 Session.getActiveUser().getEmail() 时,代码可以完美运行

嘻嘻嘻

PS:该应用必须以我的身份执行,因为它需要访问我的联系人。

【问题讨论】:

    标签: google-apps-script authentication


    【解决方案1】:

    当应用程序以您的身份运行时,您不能让Session.getActiveUser().getEmail() 返回用户的电子邮件 ID。您可以尝试一些解决方法

    1. 明确询问用户的电子邮件 ID。

    2. 编写两个脚本 - 一个是前端 UI 等,在用户访问应用程序时运行(这允许 Session.getActiveUser().getEmail() 返回用户的电子邮件地址)。有第二个脚本来执行访问您的联系人的任务。 在第二个脚本中使用 doPost 和 doGet 方法从第一个脚本调用第二个脚本。 例如,

    脚本 1:

    function whatever(){
      UrlFetchApp.fetch('SERVICE_URL_OF_SCRIPT_2'); 
    }
    

    脚本 2:

    function doGet(e){
      // code to access your contact, get parameters in e.parameters
    
    }
    

    【讨论】:

    • 我有:function whatever(){ // UI 元素、处理程序等返回 app } function doGet(e){ //调用 e.parameter.textbox,尝试检索 Session.getActiveUser() .getEmail() } 而且我确定文档说 Active user 是当前在键盘上的任何人,而 Effective user 是 Web 应用程序在其权限下运行的人。
    • 只需将这两个函数拆分为不同的脚本,然后按照我的建议使用 UrlFetch 将它们绑定在一起。
    • 对不起,您的回答没有回答我的问题。脚本必须像我一样运行。否则,它对最终用户的侵入性太大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多