使用OAuth 2和服务账户访问旧的GData API(电子表格API)。
简短的问题是,这是否可能,如果是这样,如何? 大纲 我有一个.NET应用程序,该应用程序当前使用服务帐户使用Google Drive API访问Google Apps域上的信息.使用 google-api-api-dotnet-client库代码我现在想做的是将其扩展,以及使用提供的那些API 通过"新" Google-api-dotnet-client库,它使用了旧的" gdata"库,如通过 较早的 google-gdata库,特别是电子表格API(也许还有更多). ). 问题 这是出现困难的地方.前图书馆确实做了我想要的,这是从上面的第一段中的第二个链接所证明的,而事实我自己做了. 然而 ...尽管除了OAuth 1.0和其他较旧的AUTH技术之外,第二个库已更新以支持OAuth 2.0,但据我所知and -error-允许我需要的"代表我所有用户的服务帐户". 我的问题是我是否缺少某些东西(可能很难找到或无证的东西),这会让我做我想做的事.失败了,
0 2024-04-13
编程技术问答社区
用C#和表单API v4更新单元格
有人有一个很好的C#示例用于使用V4 API更新单元格? 我有开发人员网站与Google Shee Sheets API V4一起使用的GET单元格值C#示例.我正在尝试修改示例,以更新一个"汤姆"值的单元格.我被困在SpreadSheets.Values.Update的设置上. using Google.Apis.Auth.OAuth2; using Google.Apis.Sheets.v4; using Google.Apis.Sheets.v4.Data; using Google.Apis.Services; using Google.Apis.Util.Store; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading; using System.Threading.T
0 2024-04-12
编程技术问答社区
是否可以使用json密钥而不是p12密钥进行服务账户凭证?
我正在使用C#. 我正在使用"服务帐户"授权Google BigQuery(请参阅 http:///wwwwww.afterlogic. com/coilbee-net/docs/oauth2googleserviceaccounts.html ).要创建X509证书,我使用Google开发人员控制台的P12密钥.但是,现在JSON密钥是默认值.我可以使用它代替p12键吗? 我有以下代码: string serviceAccountEmail = "xxxx@developer.gserviceaccount.com"; X509Certificate2 certificate; using (Stream stream = new FileStream(@"C:\key.p12", FileMode.Open, FileAccess.Read, FileShare.Read)) { using (MemoryStream ms = new MemoryS
0 2024-04-12
编程技术问答社区
使用谷歌数据API用C#访问谷歌电子表格
我在Google电子表格中提供了一些信息,作为一张纸. 有什么方法可以通过提供Google凭据和电子表格地址来从.NET中阅读此信息.是否可以使用Google Data API. 最终,我需要在DataTable中从Google电子表格中获取信息. 我该怎么做?如果有人尝试过,请共享一些信息. 解决方案 根据 .net用户指南: 下载 .net客户端库: 使用语句添加这些: using Google.GData.Client; using Google.GData.Extensions; using Google.GData.Spreadsheets; 身份验证: SpreadsheetsService myService = new SpreadsheetsService("exampleCo-exampleApp-1"); myService.setUserCredentials("jo@gmail.com", "mypassword"); 获
什么是在Google Apps脚本中获得边界的最有效方法
在Google Apps脚本中获取边界详细信息的最佳方法是什么? 我看不到燃气文档中边界的任何东西,所以我不得不求助于通过电子表格API进行边界. 这可以正常工作,除了边界数量大时需要很长时间才能返回或根本不返回时. 有更好的方法吗? var fieldsBorders = 'sheets(data(rowData/values/userEnteredFormat/borders))'; var currSsId = SpreadsheetApp.getActiveSpreadsheet().getId(); var activeSheet = SpreadsheetApp.getActiveSheet(); var name = activeSheet.getName(); var data = Sheets.Spreadsheets.get(currSsId, { ranges: name, fields: fieldsBorders })
12 2024-04-02
编程技术问答社区
为谷歌表格的单元格添加背景色(python)
与此问题有关(这是我更新表的代码的一部分.我通过服务和行.当我只在具有"值"变量的单个单元格中编写"确定"时,它起作用了,但对行的背景进行了修改: SPREADSHEET_ID = '###' WORKSHEET_NAME = 'Name of the sheet' async def escribirEnSheet(service, row): # print('voy a escribir en celda ' + str(range_)) # range_ = 'M'+str(row) # TODO: Update placeholder value. row += 1 range_ = WORKSHEET_NAME + "!M" + str(row) print('voy a escribir en celda: ' + str(range_)) #values = [['OK']] sheetObj = service.sp
0 2024-03-27
编程技术问答社区
谷歌表单API在本地工作,但从AWS Lambda运行时连接超时
我有一些代码在本地工作,并且根本无法使用AWS lambda.这几乎就像API被阻止了,我不确定接下来要寻找什么. 我可以"在网上"击中其他东西,因此这不是通用的路由问题,我会从AWS运行中获得插座超时错误. 我尝试了一些不同的库,包括主库的较旧版本.他们每个人在本地工作,无法从AWS起作用. #!/usr/bin/env python3 # replace creds_file = "/path/to/creds.json" import pickle import os.path from googleapiclient.discovery import build from google.oauth2 import service_account scopes = ['https://www.googleapis.com/auth/spreadsheets.readonly'] SAMPLE_SPREADSHEET_ID = "
0 2024-03-22
编程技术问答社区
谷歌表格,"该请求缺少有效的API密钥"
我正在尝试使用Google Sheets API.问题是,一旦我在Google电子表格上调用我的脚本函数,我会收到以下错误: api调用sheets.spreadsheets.values.get失败而失败:请求缺少有效的API键. (第5行). 其中line 5在脚本中看起来像这样: var values = Sheets.Spreadsheets.Values.get(spreadsheetId, rangeName).values; 和spreadsheetId和rangeName定义在第一行. 我认为问题可能是我在任何地方都没有复制API键,但我真的不明白在哪里以及如何做. 我只使用= function(). 调用该函数 解决方案 当您通过自定义功能(如=myFunction())使用板API时,会发生这种错误.运行自定义功能时,ScriptApp.getOAuthToken()返回null.我认为这是您问题的主要原因.不幸的是,我认为这是
0 2024-03-20
编程技术问答社区
张的JavaScript API未捕获错误
我正在使用我的Aurelia应用程序中的Google Shays API播放(我正在使用TypeScript).我已经设法登录了用户并要求提供所需的范围,但是当我尝试获取电子表格的值时,API会引发以下错误: cb = gapi.loaded_0:269未接收错误:drayforeach被调用,带有非数组值(…) 这就是我初始化API并登录用户的方式: gapi.load("auth2", () => { gapi.auth2.init({ 'client_id': this.clientId, 'scope': this.scopes.join(' ') }).then(() => { this.auth = gapi.auth2.getAuthInstance(); this.auth.signIn().then(response => { gapi
0 2024-03-19
编程技术问答社区
试图从谷歌电子表格发布数据到外部Api
我正在使用Google电子表格和IFTTT进行手机的DB呼叫日志,这是完美的. 现在,我试图从此DB呼叫日志中的API中填充网页中的表单. 我想每次填充床单时都会将Lastrow发送到我的API. 表格中的第一行带有标题名称:deptrament,first_name,last_name,电子邮件,电话,截止日期. 所以我设法将数据发送给API: function myFunction() { var data = { 'department': 1, 'first_name' : 'Test', 'last_name' : 'test', 'email' : 'email@gmail.com', 'phone' : ["0700000000"], 'deadline' : '2017-04-10T00:00' } var payload = JSON.str
0 2024-03-06
编程技术问答社区
SetFormulas和Rangelist
我正在尝试在一系列非连续细胞上进行setFormulas.我需要一个公式(它们都不同)在单列(c)中设置每30个单元格. 它适用于每个单元格,但创建56个变量似乎是不必要的.我可以得到公式,但不能按预期设置它们.我也尝试使用getRangeList,但我不确定这做了我认为的事情.有建议吗? function test() { var spreadsheetU09U10 = SpreadsheetApp.openById('some url'); var sheetU09 = spreadsheetU09U10.getSheetByName('TEST'); var sheetU10 = spreadsheetU09U10.getSheetByName('U10'); var sheetDATA = spreadsheetU09U10.getSheetByName('Sheet4'); //U09 SHEET //var rangeListU09 =
6 2024-03-06
编程技术问答社区
如何从数组中删除endDate属性高于当前选定月份的员工?
数据来自Google表API,因此employees.stratdate,employees.enddate等. 我需要能够仅显示曾经在选定月份工作的员工.如果他们不再工作了,但是曾经工作,则应列出它们,如果他们在选定月之前停止工作,则不应列出它们. 有2张: a)一个有两个列年零一个月 - > 2011年3月 - >报告 b)另一个包含拟合日期为: 03-24-2011->员工[像这样形成的StartDate&Enddate] 这就是为什么愚蠢的格式化尝试... const {employees, reports} = this.props; const monthsFormated = reports.map(item => {return item.month}); const yearsFormated = reports.map(item => {return item.year}); const employeeS
2 2024-03-06
编程技术问答社区
当试图用API密钥访问Google Sheets时,得到了PERMISSION_DENIED。
如果我尝试从Google表中获取基本电子表格的数据 https://sheets.googleapis.com/v4/spreadsheets/1p7sFt.....gRu9A/values/Sheet!1A1:L7?key=AIza.....oTXg it works. 但是,如果我向请求添加更多参数,则会失败. 例如: https://sheets.googleapis.com/v4/spreadsheets/1p7sFt.....gRu9A/values/Sheet1!A1:L7**?majorDimension=COLUMNS**?key=AIza.....oTXg 和返回: { "error": { "code": 403, "message": "The request cannot be identified with a client project. Please pass a valid API key with the re
4 2024-03-02
编程技术问答社区
API密钥和发现的谷歌表功能
这个问题是关于使用Python写入Google Sheet时使用API​​键进行身份验证.跟随开始示例,我正在使用一个API"发现" API URL: service = discovery.build('sheets', 'v4', discoveryServiceUrl= 'https://sheets.googleapis.com/$discovery/rest?version=v4', developerKey=APIKEY) 通过这种方式传递API密钥似乎可以正常工作(这也不例外.)之后,我尝试使用batchUpdate更新电子表格: service.spreadsheets().batchUpdate(spreadsheetId=SHEETID, body={'requests': requests}).execute() 这将丢弃401 HTTP错误:"不需要请求身份验证凭据."其他功能,例如values().clear()导致
2 2024-03-02
编程技术问答社区
如何在谷歌电子表格中添加API密钥?
我创建了一个Google表,并使用URL将其转换为JSON.示例:/list/SheetId/od6/public/values?alt = json 我想在此Google表中添加一个API键.我通过Google Cloud平台生成了一个API密钥 - https://console.cloud.google.com/flows/enablepi?apiid=sheets.googleapis.com 现在,如何将此API键添加到工作表中?请任何人都可以帮忙. 解决方案 我以为您的https://spreadsheets.google.com/feeds/list/SHEETID/od6/public/values?alt=json终点是用于板API V3.当看到床单API v3 的正式文件,如下所示. 更新:Google表v3 API将于2021年6月8日关闭. 从这种情况下,我想建议使用sheets api v4.如果电子表格已公开共享,并且您想从电子
0 2024-03-02
编程技术问答社区
Google Sheet Update Api : 获得错误[请求缺少必要的认证凭证]
我在邮递员中调用Google Sheet Update请求,其中包括以下参数: url: 标题:授权 - myaccesstoken 请求主体: 获取响应: 注意:要更新电子表格,我按照以下步骤: 使用此 在 oauth同意屏幕中添加一些项目名称 tab 现在,使用此 如果获得 redirect_mismatch_uri .然后将重定向的URI复制到宣誓地点或提示参数之前,然后将其粘贴到Google API控制台项目限制部分下的授权重定向URI.然后将生成访问令牌, 获取访问令牌.在我之前定义的请求中复制此访问令牌. 但出现错误.我无法弄清楚这个问题. 预先感谢.. 解决方案 由于您已经有了刷新令牌,因此可以使用刷新令牌检索访问令牌.作为样本,它显示了一种如何使用Curl刷新令牌检索访问令牌的方法.刷新令牌检索到的访问令牌具有到期时间.请确认. 您可以在此处看到详细信息. 卷曲命令: curl -L \ --data
6 2024-03-02
编程技术问答社区
从Google Compute Engine访问Google Sheets API(python)。
我正在尝试从计算引擎实例中执行以下操作: from googleapiclient.discovery import build service = build('sheets', 'v4') sheet = service.spreadsheets() result = sheet.values().get(spreadsheetId=SPREADSHEET_ID, range=RANGE_NAME).execute() 根据本文 如果我在计算引擎内运行该应用程序,则不需要明确传递API键.但是,我收到以下错误: googleapiclient.errors.HttpError:
8 2024-03-02
编程技术问答社区
谷歌应用程序脚本/URLFetchApp和使用返回的数据
我对此非常陌生,所以请忍受我 - 我目前在Google Form Answers生成的Google表的后端有一个操作的Google Apps脚本.我本质上是在Google表单中设置票务表格,该表格将触发通过API调用发送到我们的票务系统的相应表中的数据.它效果很好,但是我正在尝试优化它.目的是采取我使用的JSON响应: Logger.log(response.getContentText()); 为我提供以下信息: Aug 9, 2020, 11:44:40 AM Info {"_url":"https://testticketingsystem.com/REST/2.0/ticket/123456","type":"ticket","id":"123456"} 并发送另一个API调用以将数据发送到该新票. 这是代码段: var payload = { "Subject": String(su), "Content": Strin
2 2024-03-02
编程技术问答社区
Discord机器人无法获得对谷歌表格的访问,获得错误请求缺少有效的API密钥
我的Discord机器人试图访问Google表API v4.0有问题.我希望它在表格中读取,写入和更新数据.我的代码适用于Node.js应用程序,但是当我将代码放入Discord Bot中时,它会给我这个错误: UnhandledPromiseRejectionWarning: Error: The request is missing a valid API key 我不明白为什么我会遇到这个错误.我什至为我的Discord Bot创建了一个服务帐户. 这是Discord Bot的代码. require('dotenv').config(); const sheet = require('./sheet'); const { Client } = require('discord.js'); const { sheets } = require('googleapis/build/src/apis/sheets'); const client = new Cl
2 2024-03-01
编程技术问答社区
使用谷歌表格API,在我输入数据时,添加和更新列的格式化不被尊重。
所以,这实际上是一个基于我上次尝试的后续问题 如何使用API​​将列添加到Google表格并在同一调用中提供列的名称和类型? 所以,我想使用batchUpdate命令在单 api呼叫 中执行以下操作 添加一个新列. 在A1:A2>(使用A1 notation) 的列给列名称 提供列值的格式A2:A(对于将属于此列的所有值. 我构建了我的API调用,并执行如下 curl -v \ -H 'Authorization: Bearer ya29.GlxUB-UnpiYLeMzdAYyz_kVvNIVwmlMvxauAfiklslphd60INbgOQEr2eUwdx4smOSirde63hW2CvR17AMfj1P5iGw1Q3dRgGBHGZ92JKoFWozSxjbJh0wEZJKvDUQ' \ -H 'Content-Type: application/json' \ -d '{ "requests": [ {
6 2024-03-01
编程技术问答社区