【问题标题】:Unable to get Active user's email无法获取活动用户的电子邮件
【发布时间】:2019-05-21 15:58:56
【问题描述】:

我尝试记录用户的电子邮件以进行调试。我用Session.getActiveUser().getEmail()。我收到以下错误。

例外:您无权调用 Session.getActiveUser.getEmail() 所需权限:https://www.googleapis.com/auth/userinfo.email

因此我将https://www.googleapis.com/auth/userinfo.email 范围添加到我的插件中。现在我收到以下错误

脚本无权获取活动用户的身份。

但是,如果我在我的帐户 (Gsuite) 或我们域中的任何其他用户上运行它,我看不到错误。仅供参考:我是插件的所有者。

我错过了任何范围吗?

【问题讨论】:

    标签: google-apps-script gmail-addons


    【解决方案1】:

    getActiveUser() 替换为getEffectiveUser() 似乎可以正常工作。

    【讨论】:

    • 您知道为什么 getActiveUser() 不起作用吗?
    • getEffectiveUser() 获取在其身份验证下发布 WebApp 的用户。如果要让用户访问 WebApp,则必须使用 getActiveUser()。
    • 这并没有解决我的问题。
    【解决方案2】:

    我认为最好的解释是the official docs。插件用户上下文不假定强制授权,getEmail 方法可能返回一个空白字符串。

    【讨论】:

    • 哦,好的。因为,我们使用 oauth 请求电子邮件的权限,所以我认为我们应该可以访问他们的电子邮件地址。
    【解决方案3】:

    getActiveUser()getEffectiveUser() 都不适合我。 Google 目前存在一个问题,this 线程中的一些建议对我有帮助:

    (1) 尝试按照here 的说明将范围从 (File->Project Properties->Scopes) 复制到清单文件 (View->Show Manifest File) 中。

    (2) 问题在于 由 Chrome v8 提供支持的新应用脚本运行时。如果 (1) 不起作用(它对我不起作用)--> 按如下方式禁用 App Script 运行时:(运行 -> 禁用由 Chrome V8 提供支持的 App Script 运行时)。该项目现在将使用不存在此问题的 Apps Script Legacy 运行。

    注意: (2) 在问题解决之前适用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多