Forum Archive

PLS Help: Bitly URL Shortener

Maik239

Hi, I try me on my first snippet of Pythonista, but need some more help.

I have following code already, but that still does not work. Help me someone?

import clipboard
import urllib
import urllib2

kurzurl = clipboard.get()

def shorten_url(long_url):
username = 'USERNAMW'
apikey = 'APIKEY'
bitly_url = "http://api.bit.ly/v3/shorten?login={0}&apiKey={1}&longUrl={2}&format=txt"
req_url = urlencode(bitly_url.format(username, apikey, long_url))
short_url = urlopen(req_url).read()
return short_url

print shorten_url('kurzurl')

robbielj31

This should work.
first of all, long url should be url-quoted.
then bitly api returns json data so needs json module to load.
build a urllib2 opener to open formatted bitly_url, that's it.

import clipboard
import urllib2
import json

kurzurl = urllib2.quote(clipboard.get())

def shorten_url(long_url):
     username = 'username'
     apikey = 'apikey'
     bitly_url = "http://api.bit.ly/v3/shorten?login=%s&apiKey=%s&longUrl=%s" %(username, apikey, long_url)
     r = urllib2.Request(bitly_url)
     opener = urllib2.build_opener()
     f = json.loads(opener.open(r).read())
     short_url = f['data']['url']
     return short_url

print shorten_url(kurzurl)