【问题标题】:How to manage Google Contacts via Google Apps Script? (errors with permission)如何通过 Google Apps 脚本管理 Google 通讯录? (许可错误)
【发布时间】:2021-11-18 00:18:05
【问题描述】:

我已经尝试了各种我读过并能想到的东西:

将范围添加到清单文件中:

    {
      "timeZone": "America/Fortaleza",
      "dependencies": {
        "enabledAdvancedServices": [
          {
            "userSymbol": "People",
            "version": "v1",
            "serviceId": "peopleapi"
          }
        ]
      },
      "oauthScopes": [
        "https://www.google.com/m8/feeds",
        "https://www.googleapis.com/auth/spreadsheets"
      ],
      "exceptionLogging": "STACKDRIVER",
      "runtimeVersion": "V8"
    }

在服务中启用人员 API

我已删除所有应用权限并从头开始

我已尝试更改浏览器,以防可能出现 cookie

这就是我现在尝试联系的方式:

    function onEdit(e) {
        var sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Contacts"); 
        var rng = e.range;
        var row = rng.getRow();
        var drng = sht.getRange(row, 2, 1, 22).getValues();
        var email = sht.getRange(row, 2, 1, 1).getValue();
    
        var gmailContact = ContactsApp.getContactsByEmailAddress(email);
        Logger.log(gmailContact);
    }

这是我得到的错误: 您没有权限调用 ContactsApp.getContactsByEmailAddress 所需权限:https://www.google.com/m8/feeds

我现在正在尝试读取联系人,并且会在我编辑包含现有联系人的行时更新它。

感谢您的帮助!

【问题讨论】:

  • 如果您尝试将onEdit 的脚本作为简单触发器运行,请将触发器更改为可安装触发器。我认为这可能是您的问题的原因。届时,请将函数名称从onEdit 重命名为其他名称,以防止简单触发器和可安装触发器重复运行。如果您已经尝试将脚本作为可安装触发器运行,我深表歉意。
  • 好吧,@Tanaike! ...照常!谢谢!
  • 感谢您的回复。我很高兴你的问题得到了解决。当您的问题解决后,您可以将其发布为答案吗?这样,它对遇到相同问题的其他用户很有用。

标签: google-apps-script google-sheets google-contacts-api


【解决方案1】:

正如@Tanaike 所指出的,问题是由于它目前在一个简单的触发器基础上运行,而不是在一个可安装的基础上运行。谢谢!

参考:

Simple Triggers > Restrictions:

他们无法访问需要授权的服务。

【讨论】:

    【解决方案2】:

    Installable Triggers

    可安装版本可以调用需要授权的服务。可安装版本在创建触发器的用户的授权下运行,即使另一个具有编辑权限的用户打开了电子表格。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多