我的目标是自动将Google云端硬盘生成的(超长)分享链接用于短文件中的文档:goo.gl/code
我从Jacob Jan Tunistra here找到了漂亮的剧本,但那篇文章现已关闭。
雅各布的代码就像魅力一样,但你需要运行它。我的需求是在打开文档时自动运行脚本(而不是打开菜单,按下按钮。如何修改该脚本?
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);
}
答案 0 :(得分:2)
simple trigger(例如onOpen)无法使用UrlShortener服务,因为此服务需要授权。相反,您应该使用可安装的触发器。它可以创建如下:
答案 1 :(得分:1)
您确定要在打开后自动运行吗? 这意味着您之前生成的所有短链接都将被新的短链接覆盖。 粘贴长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);
}
之后,从脚本编辑器转到参考资料&gt;当前项目的触发器 使用参数“from spreadsheet”,“ on edit ”创建函数rangeShort的触发器。