Author: Greg R. Jacobs
Date: Feb 07, 2015
Description: Wanted to have a Google Sheet with 3 columns.
First was long URL
Second needed to dynamically shorten
using Goo.gl and an API key obtained from:
https://code.google.com/apis/console
Third to update with clicks on shortened url
(this instance is referencing allTime clicks on the short URL).
*/
function shortenURL(longUrl,key) {
var serviceUrl="https://www.googleapis.com/urlshortener/v1/url?key="+key;
var options={
muteHttpExceptions:true,
method:"post",
contentType: "application/json",
payload : Utilities.jsonStringify({'longUrl': longUrl })
};
var response=UrlFetchApp.fetch(serviceUrl, options);
if(response.getResponseCode() == 200) {
var content = Utilities.jsonParse(response.getContentText());
if ( (content != null) && (content["id"] != null) )
return content["id"];
}
return longUrl;
}
function GetShortUrlClicks(shortURL,key) {
var url = "https://www.googleapis.com/urlshortener/v1/url?key="+key+"&shortUrl="+shortURL+"&projection=ANALYTICS_CLICKS";
if(shortURL != "")
{
var response = UrlFetchApp.fetch(url);
var jsonResponse = response.toString();
var data = JSON.parse(jsonResponse);
Logger.log(data.analytics.allTime.shortUrlClicks);
return data.analytics.allTime.shortUrlClicks;
}
else{}
}