【问题标题】:Access Not Configured. The API (Drive API) is not enabled for your project. Please use the Google Developers Console to update your configuration访问未配置。您的项目未启用 API(Drive API)。请使用 Google Developers Console 更新您的配置
【发布时间】:2016-05-05 09:38:49
【问题描述】:

我遇到了一点问题。

我创建了一个 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 表格一起使用,但如果我复制它并使用菜单中的脚本,我会收到消息:

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

我在管理和开发者控制台中检查了所有内容,但找不到任何东西。我也激活:

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

如果我留下第一张表的副本并停用 API 访问权限,则第一张表(原点)不再适用于脚本,并且我收到上述警报消息。我必须删除副本,重新激活 API 访问以使其再次工作。所以,不知何故,我猜,副本正在使用只允许使用一个项目表而不是该表的副本的脚本。有没有办法让它工作?或者,我如何将脚本添加/附加到副本。我使用了这个脚本: 函数 getSpreadsheetKey() { 返回 SpreadsheetApp.getActiveSpreadsheet().getId(); };

并看到它给了我原始表格中的谷歌密钥。这可能是我无法将脚本与谷歌表格副本一起使用的原因。但我仍然不知道如何正确接线。

【问题讨论】:

    标签: api console google-sheets google-drive-api admin


    【解决方案1】:

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

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

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

    基本上发生的事情是我进行了单元测试来验证访问权限,并且:

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

    【讨论】:

    • 作为参考,传播需要多长时间,或多或少? (1 分钟、1 小时、1 天……?)
    • 这需要几分钟。
    【解决方案2】:

    此消息 [(403) Access Not Configured] 表示当您设置 Google Drive Access 时,您错过了“激活 Drive API”。您没有将 Drive API 配置为在您的 Google 帐户中启用。 要激活 Drive API,请转到 Developers Console 并启用 Google Drive API。

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

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

    这里是启用 Drive API 的链接:https://developers.google.com/drive/v3/web/enable-sdk

    对于两腿 OAuth 访问控制文档,链接如下:https://support.google.com/a/answer/162105?hl=en

    【讨论】:

    • 嘿,找到了。它被激活了。我不知道我必须为每个电子表格启用它。意味着从 > 脚本编辑器 > 资源 > 高级 google 服务 > Google Drive > 链接并启用 Api。认为 Api 开关通常用于 Google Drive 而不是选择性的。感谢您的帮助。
    猜你喜欢
    • 2015-07-20
    • 2015-07-23
    • 2014-01-27
    • 2014-07-30
    • 2014-05-17
    • 2014-01-28
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多