Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 打开Google工作表时使用goo.gl URL缩短器_Google Sheets_Google Drive Realtime Api_Goo.gl - Fatal编程技术网

Google sheets 打开Google工作表时使用goo.gl URL缩短器

Google sheets 打开Google工作表时使用goo.gl URL缩短器,google-sheets,google-drive-realtime-api,goo.gl,Google Sheets,Google Drive Realtime Api,Goo.gl,我的目标是自动将Google drive为他的文档生成的(非常)长的共享链接转换为短url:goo.gl/code 我从雅各布·扬·图尼斯特拉那里找到了漂亮的剧本,但那篇文章现在已经关闭了 Jacob的代码很有魅力,但你需要运行它。我的需要是在你打开文档时自动运行脚本(而不是打开菜单),按下按钮。我如何修改脚本 function onOpen() { SpreadsheetApp.getUi() .createMenu("Shorten") .addItem("Go !!","rangeShor

我的目标是自动将Google drive为他的文档生成的(非常)长的共享链接转换为短url:goo.gl/code

我从雅各布·扬·图尼斯特拉那里找到了漂亮的剧本,但那篇文章现在已经关闭了

Jacob的代码很有魅力,但你需要运行它。我的需要是在你打开文档时自动运行脚本(而不是打开菜单),按下按钮。我如何修改脚本

function onOpen() {
SpreadsheetApp.getUi()
.createMenu("Shorten")
.addItem("Go !!","rangeShort")
.addToUi()  
}

function rangeShort() {
var range = SpreadsheetApp.getActiveRange(), data = range.getValues();
var output = [];
for(var i = 0, iLen = data.length; i < iLen; i++) {
var url = UrlShortener.Url.insert({longUrl: data[i][0]});
output.push([url.id]);
}
range.offset(0,1).setValues(output);
}
函数onOpen(){ SpreadsheetApp.getUi() .createMenu(“缩短”) .addItem(“Go!!”,“rangeShort”) .addToUi() } 函数rangeShort(){ var range=SpreadsheetApp.getActiveRange(),data=range.getValues(); var输出=[]; 对于(var i=0,iLen=data.length;iUrlShortener服务不能由onOpen之类的用户使用,因为此服务需要授权。相反,您应该使用可安装的触发器。它可以按如下方式创建:

  • 在脚本编辑器中,转到“资源”>“当前项目的触发器”
  • 使用参数“来自电子表格”、“打开”为函数rangeShort创建触发器

  • 参考:。

    您确定要在打开后自动运行它吗? 这意味着您以前生成的所有短链接都将被新链接覆盖。 您可能希望在粘贴长URL后自动生成短链接。 为此,您的代码应该按照以下方式进行查看:

    function rangeShort() {
    var range = SpreadsheetApp.getActiveRange(), data = range.getValues();
    var output = [];
    for(var i = 0, iLen = data.length; i < iLen; i++) {
    var url = UrlShortener.Url.insert({longUrl: data[i][0]});
    output.push([url.id]);
    }
    range.offset(0,1).setValues(output);
    }
    
    函数范围短(){
    var range=SpreadsheetApp.getActiveRange(),data=range.getValues();
    var输出=[];
    对于(var i=0,iLen=data.length;i
    之后,从脚本编辑器转到参考资料>当前项目的触发器
    为函数rangeShort创建一个触发器,参数为“来自电子表格”,“编辑时”.

    Hi sandwich,谢谢你的回复。我创建了可安装触发器,但仍然无法工作。也许我也应该修改脚本中的某些内容?我的意思是我需要将触发器应用于所有特定列,但当前脚本可能会等待插入值,对吗?