【问题标题】:Google Apps Script - I am unable to retrieve user's email address when add-on is publishedGoogle Apps 脚本 - 发布插件后我无法检索用户的电子邮件地址
【发布时间】:2015-11-18 13:47:45
【问题描述】:

以下代码在我发布 G 文档插件之前有效。但是,通过 Google Docs Add-on/my_add-on 获得的发布版本不起作用。

我在这里遗漏了哪些概念?

onOpen(){

  var email = Session.getActiveUser().getEmail();

}

【问题讨论】:

    标签: google-apps-script google-docs add-on


    【解决方案1】:

    documentation 明确指出:

    如果安全策略不允许访问用户的身份, User.getEmail() 返回一个空白字符串。在什么情况下 可用的电子邮件地址有所不同:例如,用户的电子邮件地址 在任何允许脚本在没有的情况下运行的上下文中都不可用 该用户的授权,例如简单的 onOpen(e) 或 onEdit(e) 触发器、Google 表格中的自定义函数或部署到 “execute as me”(即由开发者授权而不是 用户)。但是,这些限制通常不适用,如果 开发者和用户属于同一个 Google Apps for Business 域。

    因此,您的脚本可能无法满足这些条件。
    您需要运行用户必须先授权的功能才能获取他们的电子邮件。

    【讨论】:

    • 谢谢,罗宾。我阅读了授权以了解如何编写/执行此类代码。 ...如果您在我开始之前有任何建议,我会很感兴趣,因为我以前没有深入研究过这个话题。
    • 这取决于您的用例。最简单的解决方案是在菜单中添加一个按钮来执行授权过程。
    • 这将是用户的一次性点击,还是用户每次访问该功能时都需要点击该按钮?
    • 我问是因为最初安装插件时,用户接受“获取用户电子邮件”。我看到我的代码在哪里有 onOpen();但是,使用 getEmail 的其他位置也被阻止。你能看出这是多么令人困惑吗?用户最初接受该电子邮件地址可以访问,但我需要让他们再次授权才能访问该电子邮件地址。
    • 应该是一次性点击。一旦他们授权了对电子表格的操作,就不再需要对该电子表格进行授权。
    猜你喜欢
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多