首页 文章

找不到OAuth客户端 - Google Apps脚本 - BigQuery

提问于
浏览
3

我正在尝试使用App Script将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 - scope = https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/spreadsheets - response_type = code gsession - redirect_uri = https://script.google .COM / oauthcallback - ACCESS_TYPE =离线 - approval_prompt =力 - 状态= ACjPJvHwuS-深水-j9b5vlH_Ul4VokI3QRANL-gwa7YWxz6-RFelZBuLQ2aiiGldHRgR89sMnvlgpsmSOnlquEY45oTt1IgZHWfoWq5e52Jf6l_G-5yPpPwCf40Dkv_JYR9welQPrQ - client_id=734978265744@developer.gserviceaccount.com - HL = EN

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

  • 在Google Serveices中启用了BigQuery API

  • 在项目的开发人员控制台中启用了BigQuery .

3 回答

  • 2

    昨天我有同样的问题 .

    我曾多次复制一个文档,然后复制其中的所有脚本,并附加“Copy of” . 我最终得到的是“副本复印件副本” .

    作为最后的手段,我将脚本项目重命名为“”,并且嘿presto,它变得很好 .

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

    是否将项目重命名为较短的名称可以解决问题?

  • 2

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

  • 9

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

相关问题