import httplib2, urllib class foursquare: def __init__(self, username, password): self.username = username self.password = password def checkin(self, vid = None, venue = None, shout = None, private = 0, twitter = 0, facebook = 0, geolat = None, geolong = None): params = {'vid':vid, 'venue':venue, 'shout':shout, 'private':private, 'twitter':twitter, 'facebook':facebook, 'geolat':geolat, 'geolong':geolong} url = "https://api.foursquare.com/v1/checkin" return self.dorequest(url, "POST", params) def venues(self, geolat, geolong, l = 10, q = None): params = {'geolat':geolat, 'geolong':geolong, 'l':l, 'q':q} url = "http://api.foursquare.com/v1/venues" return self.dorequest(url, "GET", params) def dorequest(self, url, method, params): for key in params: if key is None: del params[key] # Remove keys with no value, compliance with the API encodedparams = urllib.urlencode(params) conn = httplib2.Http() conn.add_credentials(self.username, self.password) if method == "GET": response = conn.request(url + "?" + encodedparams, method) if method == "POST": response = conn.request(url, method, encodedparams, '{"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}') return response if __name__ == "__main__": my4sq = foursquare("username", "password") checkinresult = my4sq.checkin() print(checkinresult)