【问题标题】:The OAuth Client was not found - Google Apps Script - BigQuery未找到 OAuth 客户端 - Google Apps 脚本 - BigQuery
【发布时间】:2014-03-27 02:05:09
【问题描述】:

我正在尝试使用应用脚本将 BigQuery 结果加载到 Google 电子表格中。这是我的代码

function runQuery() {
var projectId = 'xxxxx';

var request = {
  query: 'select * from ASRLogs.LocationBasedClicks;'
};

var queryResults = BigQuery.Jobs.query(request,projectId);
var jobId = queryResults.jobReference.jobId;

// Check on status of the Query Job. 
var sleepTimeMs = 500;

while(!queryResults.jobComplete)
{
   Utilities.sleep(sleepTimeMs);
   sleepTimeMs *=2;
   queryResults = BigQuery.Jobs.getQueryResults(projectId, jobId);
}

// Get all the rows of the result. 
var rows = queryResults.rows;
while (queryResults.pageToken) {
   queryResults = BigQuery.Jobs.getQueryResults(projectId, jobId, {
       pageToken: queryResults.pageToken
   });
   rows = rows.concat(queryResults.rows);
}

if (rows) {
     var spreadsheet = SpreadsheetApp.create("BigQuery Results");
     var sheet = spreadsheet.getActiveSheet();

     // Append the headers
     var headers = queryResults.schema.fields.map(function(field) {
       return field.name;
     });
     sheet.appendRow(headers)

     // Append the results. 
     var data = new Array(rows.length);
     for (var i = 0; i < rows.length; i ++){
       var cols = rows[i].f;
       data[i] = new Array(cols.length);
       for (var j =0; j < cols.length; j++){
         data[i][j] = cols[j].v;
       }
     }
     sheet.getRange(2,1,rows.length,headers.length).setValue(data);

     Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
} else {
  Logger.log('No rows returned.')
}
}

我得到的错误是

错误:invalid_client
未找到 OAuth 客户端。
请求详情
- cookie_policy_enforce=false
- 范围=https://www.googleapis.com/auth/bigqueryhttps://www.googleapis.com/auth/spreadsheets
- response_type=code gsession
-redirect_uri=https://script.google.com/oauthcallback
- access_type=离线
- 批准提示=强制
- state=ACjPJvHwuS-sspO-j9b5vlH_Ul4VokI3QRANL-gwa7YWxz6-RFelZBuLQ2aiiGldHRgR89sMnvlgpsmSOnlquEY45oTt1IgZHWfoWq5e52Jf6l_G-5yPpPwCf40Dkv_JYR9welQPrQ
- client_id=734978265744@developer.gserviceaccount.com
- hl=zh

我错过了什么吗?我做了以下事情。

  1. 在 Google 服务中启用 BigQuery API
  2. 在项目的开发者控制台中启用 BigQuery。

【问题讨论】:

    标签: google-apps-script google-bigquery


    【解决方案1】:

    导航到您的 Google API 控制台中的 Consent Screen 部分(从左侧边栏中),更改产品名称并保存更改。

    【讨论】:

    • 这正是我所缺少的。
    【解决方案2】:

    我昨天也遇到了同样的问题。

    我已经多次复制一个文档,这将依次复制其中的所有脚本,并在每个脚本后面附加“副本”。我最终得到的是“副本副本副本副本副本”。

    作为最后的手段,我将 Script 项目重命名为“”,嘿,很快,它来了。

    我的理论是,由于脚本项目名称被用作请求授权的应用程序的名称,因此这里有一些字符限制。

    将项目重命名为更短的名称可以解决问题吗?

    【讨论】:

    • 谢谢。我重命名了该项目并且它可以工作。但是现在我的问题是未配置访问。请使用 Google Developers Console 为您的项目激活 API。 (第 43 行,文件“代码”)。但是已经配置了项目。有什么想法吗?
    • 想通了。 App Script的项目需要是放置BigQuery数据集的项目名称。
    • 甜蜜!很高兴这有帮助。 :=)
    【解决方案3】:

    检查您的客户端 ID 或密码是否在您的代码中不包含任何空格 - 这是我从控制台复制信息时没有注意到的问题

    【讨论】:

    • 不错的发现。同样的问题发生在我身上
    • 这发生在我身上:(
    • 检查空格或换行!!
    • 我也是。您会认为复制到剪贴板功能会正确复制它。
    • 空格可以在字符串的开头,不能在结尾!那是我的问题,谢谢!
    猜你喜欢
    • 2017-09-06
    • 1970-01-01
    • 2015-02-20
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多