Google API for shortening URLs
var shortUrl = function(sourceUrl, key) {
$.ajax ({
url: 'https://www.googleapis.com/urlshortener/v1/url?key=' + key,
type: 'POST',
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify({longUrl: sourceUrl}),
success: function(response){
console.log(response.id);
},
error: function(error){
console.log(error);
}
});
};
var shortUrl;
var googleShortPageUrl = function(sourceUrl, googleAPIKey) {
var callGoogle = function(sourceUrl, googleAPIKey) {
return new Promise(function(resolve, reject) {
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
resolve(JSON.parse(this.responseText).id);
} else if (this.readyState == 4 && this.status == 400) {
console.log('Google API Key rejected.');
reject();
}
};
var requestUrl = 'https://www.googleapis.com/urlshortener/v1/url?key=' + googleAPIKey;
var requestBody = JSON.stringify({ longUrl: sourceUrl });
request.open('POST', requestUrl, true);
request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('Content-length', requestBody.length);
request.setRequestHeader('Connection', 'close');
request.onerror = function() {
reject(Error('Network Error'));
};
request.send(requestBody);
});
};
callGoogle(sourceUrl, googleAPIKey).then(
function(response) {
shortUrl = response;
},
function() {
shortUrl = sourceUrl;
}
);
};
Host: https://www.googleapis.com/urlshortener/v1/url?key=
HTTP Method: POST
Post Data: longUrl -> 'full url to shorten'
Headers Required: Content-Type: application/json
The payload must be JSON stringified for google to proccess the url.
(https://developers.google.com/url-shortener/v1/url/insert)