标签: google-apps-script

在 Apps 脚本中处理 POST 请求后重定向

我在让 google 脚本页面重定向回我的自定义 URL 时遇到了问题。该脚本当前正在执行,但在执行完成后我无法让它重定向回其上一页。

下面是 script.gs 代码:

function doPost(e) {

  try {
    Logger.log(e); // the Google Script version of console.log see: Class Logger
    record_data(e);

    // shorter name for form data
    var mailData = e.parameters;
    var name= String(mailData.name);
    var message= String(mailData.message);
    var email= String(mailData.email);
    var all= ("Name: "+name+"\nReply address: "+email+"\nMessage: "+message);


    // determine recepient of the email
    // if you have your email uncommented above, it uses that `TO_ADDRESS`
    // otherwise, it defaults to the email provided by the form's …
Run Code Online (Sandbox Code Playgroud)

html javascript google-apps-script custom-url

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

SpreadsheetApp.insertImage 服务器错误

为什么下面的代码在 GSuite 电子表格中返回“服务器错误”?

function test() {
  var ss = SpreadsheetApp.openById('1Wc6nKxxxxxxxxxxxxxxxxxx0Ld6QyaY');
  var sheet = ss.getSheetByName('2018.0801-0831');
  var img = DriveApp.getFileById('1qw2uy3cNxxxxxxxxxxxxxxxxxDZRES');
  var imgBlob = img.getBlob();
  sheet.insertImage(imgBlob, 9, 20);
}
Run Code Online (Sandbox Code Playgroud)

图像为 JPEG,276KB。图像大小为 173KB,此代码有效。是否可以插入大图像块?

google-sheets google-apps-script

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

使用脚本将 csv 文件导入谷歌表格

我面临以下问题。我将看到一个 .csv 文件,其中包含以下字段:

ItemID  Date    Source name Title   URL Created ItemSourceType
Run Code Online (Sandbox Code Playgroud)

但是,我不需要所有字段,但我需要将其导入到预定义的 Google 表格模板中,如下所示:

Date    Writer  Status  Geog/Area/Product   Source  Title   Note
Run Code Online (Sandbox Code Playgroud)

同样,并非所有列都需要填充,因此最终解决方案应如下所示。

Date    Writer  Status  Geog/Area/Product   Source  Title   Note 
Today() NULL    NULL    Null                Site    Title-(hyperlinked with URL)   Null
Run Code Online (Sandbox Code Playgroud)

我已将以下代码放在一起 - 其中一些代码一直在测试并试图拆分出一个 CSV,我还没有尝试添加超链接字段。

function addData() {
  var fSource = DriveApp.getFolderById('138ZRbesgDkKHOROm4izD22oaXoanvsyJ'); // reports_folder_id = id of folder where csv reports are saved
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 12;  // First row of data to process
  var numRows = 2;   // …
Run Code Online (Sandbox Code Playgroud)

google-apps-script

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

使用 Apps 脚本生成公钥/私钥 RSA

我想使用 Google 的 Apps Script 服务创建一个公钥/私钥 RSA。我找到了文档,但没有看到类似“生成密钥”或类似在 c# 中使用RSACryptoServiceProvider何时可以创建密钥并将其导出到 XML。

我看看这个文档https://developers.google.com/apps-script/reference/utilities/

var signature = Utilities.computeRsaSha256Signature("this is my input",
    "-----BEGIN PRIVATE KEY-----\nprivatekeyhere\n-----END PRIVATE KEY-----\n");
Run Code Online (Sandbox Code Playgroud)

如何生成我的“KEY” 正确的方法是什么?

为了澄清我的要求,在 c# 中我们可以这样做。

using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(keySize))
      {
        privateKey = RSA.ToXmlString(true);
      }
Run Code Online (Sandbox Code Playgroud)

这将生成一个私钥运行时,我尝试用 Apps 脚本做同样的事情,这可能吗?

编辑部分

事实上,我已经有了一个可以生成 RSA 密钥的 javascript 类,但是在 .Gs 代码文件中运行它需要很长时间。我的 Javascript 代码在浏览器中运行良好,但是当它运行到 .gs 文件时......它看起来非常慢

我正在寻找来自 Google 的“本机”服务来完成它..

javascript rsa google-apps-script

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

如何对谷歌应用脚​​本中的范围列求和

J    
1    
2    
3    
Run Code Online (Sandbox Code Playgroud)

这是代码:

function sumsald () {
   var ss = SpreadsheetApp.getActiveSpreadsheet ();
   var s1 = ss.getSheetByName ("rendPendForm");
   var dataRange = s1.getDataRange ();
   var lastrow = dataRange.getLastRow ();
   var values = s1.getRange (2.10, lastrow, 1) .getValues ();
        var sum = 0;           
        for (var i = 0; i <values.length; i ++) {
            result = values [i] [10] + sum;
            Logger.log (result);
     }
     s1.getRange (i + 1, 10) .setValue (result);
  }
Run Code Online (Sandbox Code Playgroud)

结果脚本# NUM!
Logger.log==NaN

6 预期

谢谢,路易斯。

javascript google-apps-script

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

构建脚本代码以将数据从 Google Places API 返回到 Google Sheets

我正在尝试为 Google 表格构建一个函数,以从 Google Places API 中的某些地方获取完整地址。

据我了解,为此我需要:

a) 在 Google Places API 上构建要拍摄的查询(例如:https : //maps.googleapis.com/maps/api/place/findplacefromtext/json? input = cordoaria% 20sao%20leopoldo%brasil & inputtype = textquery & key = AI ** *)

{
   "candidates" : [
      {
         "place_id" : "ChIJ49bv_6lpGZURk4Hl8w31LRQ"
      }
   ],
   "debug_log" : {
      "line" : []
   },
   "status" : "OK"
}
Run Code Online (Sandbox Code Playgroud)

b) 在 Google Places API 中执行该查询

c) 获取地点 id(它返回给我这个地点 id ChIJ49bv_6lpGZURk4Hl8w31LRQ)

d) 在 Google Places API 中再次搜索(例如:https : //maps.googleapis.com/maps/api/place/details/json? placeid = ChIJ49bv_6lpGZURk4Hl8w31LRQ & key = AI ****) …

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

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

将当前的 Google 脚本名称获取到变量

有谁知道获取绑定到您正在使用的工作表的当前谷歌脚本文件的名称并将其写入变量的方法?我想将它放入一个工作表单元格中以跟踪我所做的更改。

干杯

google-sheets google-apps-script

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

如何构建指向 Google 日历活动的链接?

如果我有 Google Calendar event 的 event ID,例如:

4htgpmm1hmak744r0kbkdcodar@google.com

如何构建 URL 以在 Google 日历界面中查看事件详细信息?

例如,如果我去参加一个谷歌日历活动,我会看到一个像这样的 URL:

https://calendar.google.com/calendar/r/eventedit/NGh0Z3BtbTFobWFrNzQ0cjBrYmtkY29kYXIgZXVndTlrYW4xZGRpMXBtaTZzazNpYjWoNmdAZw

什么功能/算法可我跑从去4htgpmm1hmak744r0kbkdcodar@google.comNGh0Z3BtbTFobWFrNzQ0cjBrYmtkY29kYXIgZXVndTlrYW4xZGRpMXBtaTZzazNpYjWoNmdAZw

奖励:如果还有一个通过 Google Apps Script 处理CalendarEvent的快捷方法,那就太棒了。例如,如果有一个方法,getUrl()就像有一个getId()方法一样。

google-calendar-api google-apps-script

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

Hmac256 签名无效错误 Google App Script

我正在尝试从 Google Apps Script 中名为 3Commas 的服务中检索交易。我以前使用过公共端点,但这是我第一次尝试使用签名端点。我目前收到一个错误,指出:

[19-01-09 16:46:24:592 EST] {"error":"signature_invalid","error_description":"提供的签名无效"}

我猜这是我的格式问题。我正在使用jsSHA来构建 HMAC 部分。我试过按照文档中的示例进行操作。但我还没有完全明白。关于它可能是什么的任何建议?

3Commas 文档:https : //github.com/3commas-io/3commas-official-api-docs#signed--endpoint-security

function main() {
  var key = 'apikey';
  var secret = 'apisecret';

  var baseUrl = "https://3commas.io/public/api";
  var endPoint = "/ver1/smart_trades";
  var pointParams = "?limit=10&offset=&account_id=&scope=&type="
  //base url + end point + params
  var queryString = baseUrl+endPoint+pointParams;

  var message = queryString;
  var secret = secret;
  var shaObj = new jsSHA("SHA-256", "TEXT");
  shaObj.setHMACKey(secret, "B64");
  shaObj.update(message);
  var signature = shaObj.getHMAC("B64");

  //headers
  var hparams = …
Run Code Online (Sandbox Code Playgroud)

google-apps-script

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

DataValidationBuilder 类上的 requireCheckbox 方法签名含义

不幸的是,有关构建器的 Apps 脚本文档页面DataValidation缺少有关该requireCheckbox方法的信息。

但是,当您通过脚本文件输入它时,自动完成提供了 3 个重载:

没有参数:

requireCheckbox()
Run Code Online (Sandbox Code Playgroud)

1 个参数:

requireCheckbox(Object checkedValue)
Run Code Online (Sandbox Code Playgroud)

2 个参数:

requireCheckbox(Object checkedValue, Object uncheckedValue)
Run Code Online (Sandbox Code Playgroud)

我可以在这些参数中使用对象的哪些参数以及它们可以用于什么目的?

validation google-sheets google-apps-script

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