2016-05-31 16 views
1

Mein Ziel ist es automatisch die (sehr) lange Aktien Links erzeugen durch Google Drive für seine Dokumente in der Kurz-URL zu drehen: goo.gl/codeVerwenden goo.gl URL Shortener, wenn ein Google-Tabellenblatt offen ist

I fand das schöne Skript von Jacob Jan Tunistra here, aber dieser Beitrag ist jetzt geschlossen.

Jacobs Code funktioniert wie ein Charme, aber Sie müssen es ausführen. Meine Bedürfnisse sind das Script automatisch ausgeführt werden, wenn Sie das Dokument öffnen (und nicht das Menü e öffnen Sie die Taste drücken. Wie ich das Skript ändern können, bitte?

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); 
} 

Antwort

2

Der UrlShortener Dienst nicht von einem simple trigger solche verwendet werden können, . als onOpen, weil dieser Dienst eine Autorisierung benötigt Stattdessen sollten Sie eine installierbare Trigger verwenden Sie erstellt werden können wie folgt:.

  1. Aus dem Skript-Editor, gehen Sie auf Ressourcen> Trigger des aktuellen Projekts
  2. einen Trigger erstellen für FunktionsumfangKurz mit Parametern "aus Tabellenkalkulation", "auf op n ".

Referenz: managing installable triggers.

+0

Hallo Sandwich, danke für die Antwort. Ich habe den installierbaren Trigger erstellt, funktioniert aber immer noch nicht. Vielleicht sollte ich auch etwas im Skript modifizieren? Ich meine, ich muss den Trigger auf eine ganz bestimmte Spalte anwenden, aber das aktuelle Skript wartet vielleicht auf einen Wert, richtig? – Vince

1

Sind Sie sicher, dass Sie es automatisch ausführen möchten, nachdem Sie es geöffnet haben? Das bedeutet, dass alle zuvor erzeugten Kurzlinks von den neuen überschrieben werden. Sie möchten vielleicht, dass ein kurzer Link automatisch erstellt wird, sobald Sie eine lange URL einfügen. Dafür sollte Ihr Code die folgende genaue Art und Weise aussehen:

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); 
} 

Danach wird aus dem Skript-Editor, gehen Sie auf Ressourcen> Auslöser des aktuellen Projekts Erstellen Sie einen Trigger für die Funktion rangeShort mit den Parametern „von Tabelle“, " zum Bearbeiten ".