访问未配置。您的项目未启用 API(驱动器 API)。请使用 Google Developers Console 更新您的配置

Access Not Configured. The API (Drive API) is not enabled for your project. Please use the Google Developers Console to update your configuration

我有点问题。

我创建了一个 googlesheet 并包含了一个脚本,就像这样,将它作为 pdf 发送到我的电子邮件地址:

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp or FormApp.
  ui.createMenu('Custom Menu')
  .addItem('Send summary', 'menuItem1')
  .addSeparator()      
  .addItem('Send summary&Week', 'menuItem2')
  .addToUi();
}

function menuItem1() {

var source   = SpreadsheetApp.getActiveSpreadsheet();
var subject  = source.getSheets()[9].getRange('G1').getValue(); //cell for              subject in sheet
var body     = source.getSheets()[9].getRange('F1').getValue(); 
var sheetNumSummary = 9; // first sheet(tab) is zero, second sheet is 1, etc..

var source = SpreadsheetApp.getActiveSpreadsheet();
var thema = source.getSheets()[9].getRange('f3').getValue();  // 
var mailTo = ('youremailaddress@here.com'); //source.getSheets()        [0].getRange('D1').getValue(); // 'D1' cell which consists an emailaddress.
var name = source.getSheets()[9].getRange('G1').getValue(); // Name of              Attachement
var sheets = source.getSheets();
sheets.forEach(function (s, i) {
    if (i !== sheetNumSummary) s.hideSheet();
});
var url = Drive.Files.get(source.getId())
    .exportLinks['application/pdf'];
url = url + '&size=letter' + //paper size
    '&portrait=false' + //orientation, false for landscape
    '&fitw=true' + //fit to width, false for actual size
    '&sheetnames=false&printtitle=false&pagenumbers=false' + //hide optional
    '&gridlines=false' + //false = hide gridlines
    '&fzr=false'; //do not repeat row headers (frozen rows) on each page
var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(url, {
    headers: {
        'Authorization': 'Bearer ' + token
    }

奇怪的事情来了。我可以将它与我一起使用的 Google sheet 一起使用,但是如果我复制它并使用菜单中的脚本,我会收到消息:

访问未配置。您的项目未启用 API(驱动器 API)。请使用 Google 开发人员控制台更新您的配置。

我检查了管理和开发人员控制台中的所有内容,但没有找到任何内容。我也激活:

双足 OAuth 访问控制 允许访问所有 APIs 上面的密钥和秘密能够访问所有 Google 数据 API 的任何用户数据。了解更多

如果我保留第一个 sheet 的副本并停用 API 访问权限,则第一个 sheet(来源)不再适用于脚本,我得到上面的警告消息。我必须删除副本,重新激活 API 访问权限以使其再次工作。所以,不知何故,我猜,该副本正在使用一个脚本,该脚本只允许与一个项目 Sheet 一起工作,而不是与该 sheet 的副本一起工作。有什么办法让它发挥作用吗?或者,我如何 add/attach 将脚本复制到。我使用了这个脚本: 函数 getSpreadsheetKey() { return SpreadsheetApp.getActiveSpreadsheet().getId(); };

并看到它给了我原始 sheet 中的 google 键。这可能是我不能将脚本与 google sheet 的副本一起使用的原因。但是我还是不知道怎么接线才对。

此消息 [(403) 访问未配置] 表示当您设置 Google 驱动器访问时,您错过了“激活驱动器 API”。您没有将驱动器 API 配置为在您的 Google 帐户中启用。 要激活驱动器 API,请转到开发人员控制台并启用 Google 驱动器 API。

关于“双足 OAuth 访问控制”,无需激活。如文档中所述:使用域密钥时绕过 Google 数据 API 中的任何访问控制检查。

您必须设置 API 访问凭据 [OAuth]。

这里是 link 以启用云端硬盘 API:https://developers.google.com/drive/v3/web/enable-sdk

对于双足 OAuth 访问控制文档,这里是 link:https://support.google.com/a/answer/162105?hl=en

我刚遇到这个问题,它自动解决了。

允许使用 API 似乎有一些延迟(在启用后)

作为参考,我启用了 API 并设置了两阶段 OAuth。

基本上发生的事情是我有一个单元测试来验证访问并且:

  1. 测试失败
  2. 用谷歌搜索错误代码
  3. 看到这个 SO 线程
  4. 花了一些时间试图找出问题所在
  5. 运行 再次测试(并通过)