小编Raf*_*rmo的帖子

OAuth 同意屏幕 - 删除应用程序徽标的能力:旧解决方案不再有效

问题:如何删除应用程序徽标。

解决方案:此答案中的先前解决方案/sf/answers/4001760591/不再有效。

Google 将 的格式更改"iconUrl""icon",现在使用 -Base64编码的数据流,例如"icon":"iVBORw0KGgoAAAAN...,而不是以前写为 的图像 URL "iconUrl":"https://..."

我试过"icon":""许多Base64编码的值一样"icon":"IA""icon":"Lw"和一些其他-没有成功。我收到控制台消息,例如

为了 "icon":""

{
  "error": {
    "code": 400,
    "message": "The request failed because one of the field of the resource is invalid.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.PreconditionFailure",
        "violations": [
          {
            "type": "client_auth_config",
            "subject": "?error_code=9&error_field_name=UpdateIconRequest.icon&error_field_value=%3CByteString@3eeee81e+size%3D0+contents%3D%22%22%3E"
          }
        ]
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

或者

{
  "error": {
    "code": 400,
    "message": "Request contains an …
Run Code Online (Sandbox Code Playgroud)

google-api google-apps-script google-oauth google-cloud-platform google-workspace

13
推荐指数
1
解决办法
2523
查看次数

Google Colab:即使在运行时断开连接后,我们能否恢复所有数据?

我是一个新的学习者。我最近开始学习 Google Colab。每当我关闭 Colab 并重新打开它时,所有代码都会从头开始执行。有没有办法恢复局部变量、代码输出和之前的所有程序数据?每次加载数据集真的很耗时。

machine-learning neural-network google-drive-api google-colaboratory

5
推荐指数
2
解决办法
3922
查看次数

使用 Google 文档作为数据端点来获取 JSON

我已成功使用此 URL 从 JSON 格式的 Google 表格中提取数据:

https://spreadsheets.google.com/feeds/cells/<SHEETS_ID>/1/public/full?alt=json

我现在想获取 Google Docs 文档的 JSON。这样做的网址是什么?

我知道我可以使用 GET API,但我正在尝试使用简单的 AJAX 而没有 OAuth(文件是公开的)

javascript json google-docs-api

5
推荐指数
1
解决办法
3966
查看次数

如何修复Python at Object of type datetime is not JSON可序列化错误

我使用 Twitter 进行数据挖掘。因此,我从 Twitter 获取值 create_at 并将其保存在 Excel 文件中,然后将 Excel 文件发送到 Google Sheet,但无法发送它。
它有这样的错误:

response = service.spreadsheets().values().append(
File "C:\Users\What Name\AppData\Local\Programs\Python\Python38-32\lib\site- 
packages\googleapiclient\discovery.py", line 830, in method
headers, params, query, body = model.request(
File "C:\Users\What Name\AppData\Local\Programs\Python\Python38-32\lib\site- 
packages\googleapiclient\model.py", line 161, in request
body_value = self.serialize(body_value)
File "C:\Users\What Name\AppData\Local\Programs\Python\Python38-32\lib\site- 
packages\googleapiclient\model.py", line 274, in serialize
return json.dumps(body_value)
File "C:\Users\What Name\AppData\Local\Programs\Python\Python38-32\lib\json\__init__.py", line 231, 
in dumps
return _default_encoder.encode(obj)
File "C:\Users\What Name\AppData\Local\Programs\Python\Python38-32\lib\json\encoder.py", line 199, in 
encode
chunks = self.iterencode(o, _one_shot=True)
File "C:\Users\What Name\AppData\Local\Programs\Python\Python38-32\lib\json\encoder.py", line 257, in 
iterencode
return …
Run Code Online (Sandbox Code Playgroud)

python twitter json data-mining google-sheets

5
推荐指数
1
解决办法
3万
查看次数

Google 表格导出为 PDF 脚本 - 为什么要导出隐藏行?

我有一个脚本,用于将单个谷歌工作表保存为给定文件夹中的 pdf 文档。

由于工作表的内容是动态的,有时底部有大量空网格行,因此我提供了一种在导出文件之前隐藏没有内容的行的方法。

直到最近,这一直按要求工作。现在该函数隐藏了行,但创建的文件将行显示为未隐藏。

不知道这是否是由于最近对 google sheet api 的更改造成的,我可以做些什么来恢复旧功能?

这是我以前工作的代码块:

// API function for saving a single sheet without hiding sheets
// *******************************************************************************


function singleSheetAPIExport(){

  // Get active spreadsheet URL
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheetName = 'Example';
  var main = ss.getSheetByName(sheetName)
  var folderID = '1wsxxxxxxblahblah' // Google Drive Folder ID

  Logger.log('maxrows: ' + main.getMaxRows());
  Logger.log('last row: ' + main.getLastRow());

  // Base URL
  var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?".replace("SS_ID", ss.getId());

  /* Specify PDF export parameters
  From: https://code.google.com/p/google-apps-script-issues/issues/detail?id=3579
  */

  var url_ext = …
Run Code Online (Sandbox Code Playgroud)

pdf google-sheets google-apps-script

3
推荐指数
1
解决办法
2786
查看次数

在gdrive上的单个文件中合并多个CSV文件

我一直在尝试将多个csv文件从Google驱动器文件夹合并到单个csv文件中,但是我无法做到这一点,因为它可以很好地与Google表格配合使用,但不适用于csv文件。

我使用了stackoverflow.com上已经可用的代码,但是它不能很好地满足我的要求。

function mergeSheets() {

  /* Retrieve the desired folder */
  var myFolder = DriveApp.getFoldersByName("Test 1").next();

  /* Get all spreadsheets that resided on that folder */
  var spreadSheets = myFolder.getFilesByType("MimeType.csv");

  /* Create the new spreadsheet that you store other sheets */  
  var newSpreadSheet = SpreadsheetApp.create("Merged Sheets");

  /* Iterate over the spreadsheets over the folder */
  while(spreadSheets.hasNext()) {

    var sheet = spreadSheets.next();

    /* Open the spreadsheet */
    var spreadSheet = SpreadsheetApp.openById(sheet.getId());

    /* Get all its sheets */
    for(var y in spreadSheet.getSheets()) …
Run Code Online (Sandbox Code Playgroud)

csv google-sheets google-apps-script

3
推荐指数
1
解决办法
88
查看次数

Google Apps Script .gs 文件中的 Logger.log(...) 没有输出 - 怎么了?

我有一堆服务器端代码,我使用 Logger.log("message") 从中记录。但是一个 .gs 文件不会记录!即使有这么简单的声明:

function uploadFiles(form) {
  Logger.log("uploadFiles() Hello?");
  ...
}
Run Code Online (Sandbox Code Playgroud)

如此简单,但我得到了 zilch。有谁知道为什么我无法从一个 .gs 文件中获得任何日志输出而同一项目中的其他人可以正常记录的原因?

google-apps-script google-apps-script-editor

3
推荐指数
1
解决办法
4301
查看次数

使用新的 G Suite Marketplace 流程私下发布 Google Sheets 插件(无需验证)

问题

我找不到发布“私人”谷歌表格插件并使用新的 G Suite Marketplace 流程将其共享给测试人员的方法,因为它曾经可以通过 Chrome 网上应用店出版物实现。

描述

我曾经通过 Chrome 网上应用店“私下”(未经验证)发布 Google 表格插件。该过程是发布插件,选择“私人”作为可见性,然后选中“仅来自当前发布者设置的受信任的测试人员”将这些用户添加到允许的测试人员列表中。

由于现在新插件只能通过 G Suite Marketplace 发布,我找不到复制上述发布方法的方法。

我看到的唯一可能性是两种,在我的情况下都不起作用:

第一种是公开发布插件并选择“不公开”。这种方法需要一个我不需要的验证过程,因为我只需要与少数用户共享插件。第二种是私下发布,但这只有在用户位于同一组织内时才有可能。这也不起作用,因为我想与组织外的测试人员共享它。

我也一直在考虑使用测试人员帐户发布插件,但将其链接到我自己拥有的脚本,但我认为这是不可能的。

有没有办法使用新的 G Suite Marketplace 将“私人”发布复制到 Chrome 网上应用店的测试人员(或任何方式复制到不一定属于同一组织的选定用户)?

google-sheets google-apps-script google-apps-marketplace google-workspace

3
推荐指数
1
解决办法
1038
查看次数

如何从二维数组中提取列?

设想:

我有一个由值组成的二维数组,例如:

const arr = [ [ 1, 2, 3, 4, 5, 6 ],
              [ 7, 8, 9, 0, 1, 2 ],
              [ 3, 4, 5, 6, 7, 8 ],
              [ 9, 0, 1, 2, 3, 4 ] ];
Run Code Online (Sandbox Code Playgroud)

行数可以变化,但总是会变化是二的倍数。

问题:

如何从该数组中提取列,.map()以便获得每个包含两列的子数组?

例子:

// columns 1 and 2:
ext1 = [ [ 1, 2 ],
         [ 7, 8 ],
         [ 3, 4 ],
         [ 9, 0 ] ];

// columns 3 and 4:
ext2 = [ …
Run Code Online (Sandbox Code Playgroud)

javascript arrays

3
推荐指数
1
解决办法
3364
查看次数

Gmail AppScript mailMessage.getFrom() 返回电子邮件而不是姓名

类似于:在JavaMail中使用message.getFrom()时仅显示电子邮件地址,但无法应用该解决方案。

尝试在 Google AppScript 上使用Gmail 的mailMessage.getFrom() 。

默认脚本:

function loadAddOn(event) {
  var accessToken = event.messageMetadata.accessToken;
  var messageId = event.messageMetadata.messageId;
  GmailApp.setCurrentMessageAccessToken(accessToken);
  var mailMessage = GmailApp.getMessageById(messageId);
  var from = mailMessage.getFrom();

  var openDocButton = CardService.newTextButton()
  .setText("open docs")
  .setOpenLink(
    CardService.newOpenLink().setUrl("https://developers.google.com/gmail/add-ons/"));

  var card = CardService.newCardBuilder()
  .setHeader(CardService.newCardHeader().setTitle("My First Gmail Addon"))
  .addSection(CardService.newCardSection()
              .addWidget(CardService.newTextParagraph().setText("The email is from: " + from))
              .addWidget(openDocButton))
  .build();

  return [card];
}

Run Code Online (Sandbox Code Playgroud)

var from = mailMessage.getFrom();

这将返回发件人的姓名,而不是实际的电子邮件地址。尝试getFrom().getAddress()尝试上面提到的帖子,但显然它不起作用,getFrom()返回了一个字符串。

任何想法如何访问包含发件人元数据的数据或字典数组,以便我可以自己提取电子邮件、姓名等?

google-apps-script gmail-addons

2
推荐指数
1
解决办法
1181
查看次数

Google Cloud Platform - 无法添加范围(script.external_request 范围)

我在 Google Cloud Platform ( https://console.cloud.google.com )下有一个经过验证的 OAuth 同意屏幕,现在我需要添加一个范围。问题是我可以选中复选框并使用 ADD 添加列表中的任何范围,但我无法添加其他范围:

https://www.googleapis.com/auth/script.external_request
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我能做些什么来添加这个?

../auth/script.external_request
Run Code Online (Sandbox Code Playgroud)

google-oauth google-cloud-platform

2
推荐指数
1
解决办法
230
查看次数

UrlFetchApp 超时

我正在尝试使用 Google 表格下载一些报告。

所以基本上我正在使用 UrlFetchApp用来做这项工作的,它会在 1 分钟内收到响应时执行。如果响应时间超过一分钟,则请求超时且不会下载报告。

这是我发送的选项UrlFetchApp

var options = {
  "method" : "post",
  "header" : "someHeaders",
  "muteHttpExceptions" : true,
  "followRedirects" : false,
  "Content-Encoding" : "gzip",
  "payload" : "somePayload"
}
Run Code Online (Sandbox Code Playgroud)

然后一个简单的调用 .fetch()

有没有办法增加超时或任何解决方法?

google-sheets google-apps-script google-sheets-api

1
推荐指数
1
解决办法
1387
查看次数

谷歌日历 API。向某人日历添加事件在身份验证时会引发错误“错误 401:invalid_client”

我有一个 C# 类库,我试图通过使用他/她的电子邮件地址和密码作为凭据来将事件添加到某人的日历中。所以我对其进行调试,一旦启动,互联网浏览器中就会打开一个新页面,并显示以下错误:

在此输入图像描述

代码如下:

// It crashes when calling GoogleWebAuthorizationBroker.AuthorizeAsync
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                new ClientSecrets
                {
                    ClientId = "myGoogleAccount@gmail.com",
                    ClientSecret = "myGoogleAccountPasswordHere",
                },
                new[] { CalendarService.Scope.Calendar },
                System.Environment.UserName,
                CancellationToken.None).Result;

   // Create the service.
   var service = new CalendarService(new BaseClientService.Initializer()
   {
                HttpClientInitializer = credential,
                ApplicationName = "Calendar API Sample",
   });
Run Code Online (Sandbox Code Playgroud)

为什么会发生这个错误?ClientId不是gmail帐户吗?另外为什么互联网浏览器中会打开一个新页面?我想在不打开互联网浏览器页面的情况下进行身份验证,因为这个类库是从 Windows 服务调用的,所以我需要在后台完成身份验证。

c# google-calendar-api oauth-2.0 google-oauth visual-studio-2013

1
推荐指数
1
解决办法
3419
查看次数