当前位置: 首页 > 知识库问答 >
问题:

找不到OAuth客户端-Google应用程序脚本-BigQuery

佟阳云
2023-03-14

我正在尝试使用应用程序脚本将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=脱机
-approval_prompt=force
-state=ACjPJvHwuS-sspO-j9b5vlH_Ul4VokI3QRANL-gwa7YWxz6-RFelZBuLQ2aiiGldHRgR89sMnvlgpsmSOnlquEY45oTt1IgZHWfoWq5e52Jf6l_G-5yPpPwCf40Dkv_JYR9welQPrQ
-client_id=734978265744@developer.gserviceaccount.com
-hl=en

我错过什么了吗?我已经做了以下工作。

  1. 在Google服务中启用了BigQuery API

共有3个答案

堵飞鸿
2023-03-14

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

萧永望
2023-03-14

我昨天也有同样的问题。

我已经复制了一个文档好几次了,它会复制其中的所有脚本,并在每个脚本后面加上“的副本”。我最后得到的是“一份副本一份副本”。

作为最后的手段,我将脚本项目重命名为“”,嘿,很快,它就好了。

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

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

方绪
2023-03-14

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

 类似资料:
  • 我有一个老项目,这是试图从谷歌分析检索数据。 它不起作用,所以我试图找出问题所在。 找到了在服务器端使用分析的示例代码。 它与我的测试帐户的秘密文件一起工作。但是它对一个老项目的秘密文件不起作用。我收到以下错误: 有什么问题?机密文件已过期?如果是,我可以在没有访问谷歌帐户的情况下收到另一个吗?

  • 使用MongoDB(泛型)运行Quarkus应用程序会在启动时显示警告,例如: 然后进行从数据库获取数据的操作(例如查找)。在类似于以下的循环中生成StackOverflow异常: 映射的对象包含对象 Id 标识符。这些豆子是在一个单独的项目中定义的,有jandex插件来索引豆子 直接在项目POM文件上定义的Quarkus的依赖关系是:

  • 我们试图用任何google帐户登录我的worklight混合移动示例应用程序。 下面是创建google gmail API和创建OAuth 2.0客户端ID的屏幕截图步骤 错误日志中没有错误,只有这里引用的页面加载错误。我们得到这样的屏幕截图错误

  • 我正在使用 我能够授权用户,然后我使用这个api给出了一个链接来gign出用户 它也注销了用户,但是当我刷新页面时,它不再要求重新登录。它是直接加载用户帐户,我想让它要求用户再次登录。有人能告诉我怎么做吗?

  • 现代 Web 应用程序, 除了呈现并发送到浏览器的静态 HTML 页面外, 还包含 JavaScript, 用于通过操纵现有元素或通过 AJAX 加载新内容来修改浏览器中的页面。 本节介绍 Yii 提供的用于向网站添加 JavaScript 和 CSS 以及动态调整它们的方法。 注册脚本 使用 yii\web\View 对象时,可以动态注册前端脚本。 这里有两个专门的方法: registerJs(

  • 我有一个谷歌表单,在a列中,我需要用无替换按钮上的文本。该列在几个不同的行中具有需要保持不变的标题。我写了以下脚本: 当我尝试运行脚本时,会出现以下错误:数据中的行数与范围中的行数不匹配。数据有1,但范围有2。 我知道这与具有比其他行更多列的行有关,但不确定如何修复代码。