diff --git a/common.py b/common.py index df7c427..72ff03a 100644 --- a/common.py +++ b/common.py @@ -13,7 +13,7 @@ def __str__(self): return repr(self.reason) """Do a http request""" -def request(url, parameters=None, username_pass=None, post_data=None): +def request(url, parameters=None, username_pass=None, post_data=None, headers={}): # build url + parameters if parameters: @@ -22,7 +22,6 @@ def request(url, parameters=None, username_pass=None, post_data=None): url_params = url # if username and pass supplied, build basic auth header - headers = {} if username_pass: headers['Authorization'] = 'Basic %s' % base64.b64encode('%s:%s' % username_pass) diff --git a/services/google.py b/services/google.py index c87144e..55af2ee 100644 --- a/services/google.py +++ b/services/google.py @@ -6,13 +6,15 @@ class Google(Service): def shrink(self, bigurl): - resp = request('http://goo.gl/api/url', {'url': bigurl}, post_data = 'toolbar') + resp = request('https://www.googleapis.com/urlshortener/v1/url', + headers={"content-type":"application/json"}, + post_data=json.dumps({"longUrl": bigurl})) data = resp.read() jdata = json.loads(data) - if 'short_url' not in jdata: + if 'id' not in jdata: raise ShortyError(data) else: - return jdata['short_url'] + return jdata['id'] def qrcode(self, tinyurl): qrdata = request(tinyurl + '.qr').read()