Beispiel #1
0
def main():
    url = urlparse.urlparse(sys.argv[1])
    # Nevermind that the query can have repeated keys.
    parameters = dict(urlparse.parse_qsl(url.query))

    password_file = open(os.path.join(user.home, '.oget'))
    lines = [line.strip() for line in password_file.readlines()]

    if len(lines) == 4:
        cons_key, cons_key_secret, username, password = lines
        access_token = None
    else:
        cons_key, cons_key_secret, username, password, token, secret = lines
        access_token = oauth.OAuthToken(token, secret)

    consumer = oauth.OAuthConsumer(cons_key, cons_key_secret)

    if not access_token:
        oauth_request = create_signed_oauth_request(username, password,
                                                    consumer)

        connection = httplib.HTTPConnection(SERVER)

        headers = {'Content-Type': 'application/x-www-form-urlencoded'}
        connection.request(oauth_request.http_method,
                           AUTHEXCHANGE_URL,
                           body=oauth_request.to_postdata(),
                           headers=headers)

        auth_response = connection.getresponse().read()
        token = parse_auth_response(auth_response)
        access_token = oauth.OAuthToken(*token)
        open(os.path.join(user.home, '.oget'), 'w').write('\n'.join(
            (cons_key, cons_key_secret, username, password, token[0],
             token[1])))

    oauth_request = oauth.OAuthRequest.from_consumer_and_token(
        consumer,
        access_token,
        http_method='POST',
        http_url=url.geturl(),
        parameters=parameters)
    oauth_request.sign_request(SIGNATURE_METHOD, consumer, access_token)

    connection = httplib.HTTPConnection(SERVER)
    connection.request(oauth_request.http_method,
                       oauth_request.to_url(),
                       body=oauth_request.to_postdata(),
                       headers=CONTENT_TYPE_HEADER)

    print connection.getresponse().read()
Beispiel #2
0
 def new_session(self,
                 request_key=None,
                 request_secret=None,
                 access_key=None,
                 access_secret=None):
     if request_secret and request_key:
         request_token = oauth.OAuthToken(request_key, request_secret)
     else:
         request_token = None
     if access_secret and access_key:
         access_token = oauth.OAuthToken(access_key, access_secret)
     else:
         access_token = None
     return MeetupOAuthSession(self.consumer, request_token, access_token)
Beispiel #3
0
    def __init__(self,
                 key=None,
                 secret=None,
                 callback=None,
                 access_token_key=None,
                 access_token_secret=None,
                 request_token_key=None,
                 request_token_secret=None):

        self.key = key or method_call.API_KEY
        self.secret = secret or method_call.API_SECRET

        if self.key is None or self.secret is None:
            raise ValueError("API keys have not been set.")

        if callback is None:
            callback = "http://api.flickr.com/services/rest/?method=flickr.test.echo&api_key=%s" % self.key

        params = {
            'oauth_timestamp': str(int(time.time())),
            'oauth_signature_method': "HMAC-SHA1",
            'oauth_version': "1.0",
            'oauth_callback': callback,
            'oauth_nonce': oauth.generate_nonce(),
            'oauth_consumer_key': self.key
        }

        self.consumer = oauth.OAuthConsumer(key=self.key, secret=self.secret)
        if (access_token_key is None) and (request_token_key is None):
            req = oauth.OAuthRequest(http_method="GET",
                                     http_url=TOKEN_REQUEST_URL,
                                     parameters=params)
            req.sign_request(oauth.OAuthSignatureMethod_HMAC_SHA1(),
                             self.consumer, None)
            resp = urllib2.urlopen(req.to_url())
            request_token = dict(urlparse.parse_qsl(resp.read()))
            self.request_token = oauth.OAuthToken(
                request_token['oauth_token'],
                request_token['oauth_token_secret'])
            self.access_token = None
        elif request_token_key is not None:
            self.access_token = None
            self.request_token = oauth.OAuthToken(request_token_key,
                                                  request_token_secret)
        else:
            self.request_token = None
            self.access_token = oauth.OAuthToken(access_token_key,
                                                 access_token_secret)
Beispiel #4
0
    def set_verifier(self, oauth_verifier):
        if self.request_token is None:
            raise AuthHandlerError(
                "Request token is not defined. This ususally means that the access token has been loaded from a file."
            )
        self.request_token.set_verifier(oauth_verifier)

        access_token_parms = {
            'oauth_consumer_key': self.key,
            'oauth_nonce': oauth.generate_nonce(),
            'oauth_signature_method': "HMAC-SHA1",
            'oauth_timestamp': str(int(time.time())),
            'oauth_token': self.request_token.key,
            'oauth_verifier': self.request_token.verifier
        }

        req = oauth.OAuthRequest(http_method="GET",
                                 http_url=ACCESS_TOKEN_URL,
                                 parameters=access_token_parms)
        req.sign_request(oauth.OAuthSignatureMethod_HMAC_SHA1(), self.consumer,
                         self.request_token)
        resp = urllib2.urlopen(req.to_url())
        access_token_resp = dict(urlparse.parse_qsl(resp.read()))
        self.access_token = oauth.OAuthToken(
            access_token_resp["oauth_token"],
            access_token_resp["oauth_token_secret"])
Beispiel #5
0
def augment(url, parameters, credentials, http_method='GET'):
    """
    Create a URL for HTTP request with authentication 
    information. These are added as extra parameters.
    """

    # Create an object with the api key and secret key as attributes `key` and `secret`:
    consumer = oauth.OAuthConsumer(credentials['api_key'],
                                   credentials['api_secret_key'])
    # Create an object with the token and token secret as attributes; this object has to/from string methods:
    token = oauth.OAuthToken(credentials['access_token'],
                             credentials['access_token_secret'])

    # Create an object with all the provided information plus OAuth version, timestamp and random number:
    oauth_request = oauth.OAuthRequest.from_consumer_and_token(
        consumer,
        token=token,
        http_method=http_method,
        http_url=url,
        parameters=parameters)
    # Create the attribute 'oauth_signature' in the object; this attribute is a authentication signature built from my secret key and the full message to be sent:
    oauth_request.sign_request(oauth.OAuthSignatureMethod_HMAC_SHA1(),
                               consumer, token)

    return oauth_request.to_url()
def augment(url, parameters):
    secrets = hidden.oauth()
    consumer = oauth.OAuthConsumer(secrets['consumer_key'], secrets['consumer_secret'])
    token = oauth.OAuthToken(secrets['token_key'], secrets['token_secret'])
    oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer, token = token, http_method='GET', http_url = url, parameters = parameters)
    oauth_request.sign_request(oauth.OAuthSignatureMethod_HMAC_SHA1(), consumer, token)
    return oauth_request.to_url()
Beispiel #7
0
def doRequest(method, params):
    global config

    consumer = oauth.OAuthConsumer(PUBLIC_KEY, PRIVATE_KEY)

    token = oauth.OAuthToken(config['telldus']['token'],
                             config['telldus']['tokenSecret'])

    oauth_request = oauth.OAuthRequest.from_consumer_and_token(
        consumer,
        token=token,
        http_method='GET',
        http_url="http://api.telldus.com/json/" + method,
        parameters=params)
    oauth_request.sign_request(oauth.OAuthSignatureMethod_HMAC_SHA1(),
                               consumer, token)
    headers = oauth_request.to_header()
    headers['Content-Type'] = 'application/x-www-form-urlencoded'

    conn = httplib.HTTPConnection("api.telldus.com:80")
    conn.request('GET',
                 "/json/" + method + "?" +
                 urllib.urlencode(params, True).replace('+', '%20'),
                 headers=headers)
    response = conn.getresponse()
    return json.load(response)
Beispiel #8
0
    def modifyQueueDisc(self, ID, method, position=None):
        accessToken = self.accessToken
        parameters = {}
        #to add, use Post, to remove use Delete
        parameters['method'] = method
        if (position):
            parameters['position'] = str(position)
        if (method == "post"):
            parameters[
                'title_ref'] = 'http://api-public.netflix.com/catalog/titles/movies/' + str(
                    ID)
        if not isinstance(accessToken, oauth.OAuthToken):
            accessToken = oauth.OAuthToken(accessToken['key'],
                                           accessToken['secret'])

        if (method == "post"):
            requestUrl = '/users/' + accessToken.key + '/queues/disc/available'
        else:
            requestUrl = '/users/' + accessToken.key + '/queues/disc/available/' + str(
                ID)
        print "------- REQUESTED URL IS: " + requestUrl
        try:
            info = simplejson.loads(
                self.client._getResource(requestUrl,
                                         parameters=parameters,
                                         token=accessToken), 'latin-1')
        except:
            return {}

        return info
Beispiel #9
0
    def getSimilarMovies(self, ID, maxResults=None):
        accessToken = self.accessToken
        parameters = {}
        if maxResults:
            parameters['max_results'] = maxResults

        parameters['v'] = str('2.0')
        parameters[
            'filters'] = 'http://api-public.netflix.com/categories/title_formats/instant'

        if not isinstance(accessToken, oauth.OAuthToken):
            accessToken = oauth.OAuthToken(accessToken['key'],
                                           accessToken['secret'])

        requestUrl = '/catalog/titles/movies/' + str(ID) + '/similars'
        print requestUrl
        try:
            info = simplejson.loads(
                self.client._getResource(requestUrl,
                                         parameters=parameters,
                                         token=accessToken), 'latin-1')
        except:
            return {}

        return info
Beispiel #10
0
    def searchTitles(self,
                     term,
                     queue,
                     startIndex=None,
                     maxResults=None,
                     caUser=None):
        accessToken = self.accessToken
        requestUrl = '/catalog/titles'
        parameters = {'term': term}
        if startIndex:
            parameters['start_index'] = startIndex
        if maxResults:
            parameters['max_results'] = maxResults
        if caUser:
            if (caUser == True):
                parameters['country'] = "ca"

        parameters['v'] = str('2.0')
        parameters[
            'filters'] = 'http://api-public.netflix.com/categories/title_formats/' + queue
        parameters[
            'expand'] = '@title,@synopsis,@directors,@formats,@episodes,@short_synopsis'
        parameters['output'] = 'json'
        if not isinstance(accessToken, oauth.OAuthToken):
            accessToken = oauth.OAuthToken(accessToken['key'],
                                           accessToken['secret'])
        info = simplejson.loads(
            self.client._getResource(requestUrl,
                                     parameters=parameters,
                                     token=accessToken), 'latin-1')
        return info
Beispiel #11
0
    def removeTitle(self, id, queueType='disc'):
        accessToken = self.user.accessToken
        entryID = None
        parameters = {}
        if not isinstance(accessToken, oauth.OAuthToken):
            accessToken = oauth.OAuthToken(accessToken['key'],
                                           accessToken['secret'])

        # First, we gotta find the entry to delete
        queueparams = {'max_results': 500}
        requestUrl = '/users/%s/queues/disc' % (accessToken.key)
        response = self.client._getResource(requestUrl,
                                            token=accessToken,
                                            parameters=queueparams)
        print "Response is " + response
        response = simplejson.loads(response, 'latin-1')
        titles = response["queue"]["queue_item"]

        for disc in titles:
            discID = os.path.basename(urlparse(disc['id']).path)
            if discID == id:
                entryID = disc['id']

        if not entryID:
            return
        firstResponse = self.client._getResource(entryID,
                                                 token=accessToken,
                                                 parameters=parameters)

        response = self.client._deleteResource(entryID, token=accessToken)
        return response
Beispiel #12
0
    def getRentalHistoryv1(self,
                           historyType=None,
                           startIndex=None,
                           maxResults=None,
                           updatedMin=None):
        accessToken = self.accessToken
        parameters = {}
        if startIndex:
            parameters['start_index'] = startIndex
        if maxResults:
            parameters['max_results'] = maxResults
        if updatedMin:
            parameters['updated_min'] = updatedMin

        if not isinstance(accessToken, oauth.OAuthToken):
            accessToken = oauth.OAuthToken(accessToken['key'],
                                           accessToken['secret'])

        if not historyType:
            requestUrl = '/users/%s/rental_history' % (accessToken.key)
        else:
            requestUrl = '/users/%s/rental_history/%s' % (accessToken.key,
                                                          historyType)

        try:
            info = simplejson.loads(
                self.client._getResource(requestUrl,
                                         parameters=parameters,
                                         token=accessToken), 'latin-1')
        except:
            return {}

        return info
Beispiel #13
0
    def set_token(self, access_token, access_token_secret):
        """Attach an access token to the DropboxSession.

        Note that the access 'token' is made up of both a token string
        and a secret string.
        """
        self.token = oauth.OAuthToken(access_token, access_token_secret)
Beispiel #14
0
 def getSeries(self, curTID, curSeasonID, queue, startIndex=None,maxResults=None,caUser=None):
     accessToken=self.accessToken
     parameters = {}
     requestUrl1 = '/catalog/titles/series/'+curTID
     requestUrl2 = '/seasons/'+curSeasonID
     if(not curSeasonID == ""):
         requestUrl = requestUrl1 + requestUrl2
     else:
         requestUrl = requestUrl1
     if startIndex:
         parameters['start_index'] = startIndex
     if maxResults:
         parameters['max_results'] = maxResults
     if caUser:
         if (caUser == True):
             parameters['country'] = "ca"
         
     parameters['v'] = str('2.0')
     parameters['filters'] = 'http://api.netflix.com/categories/title_formats/' + queue
     parameters['expand'] = '@title,@synopsis,@directors,@formats,@episodes,@short_synopsis'
     parameters['output'] = 'json'
     if not isinstance(accessToken, oauth.OAuthToken):
         accessToken = oauth.OAuthToken(accessToken['key'], accessToken['secret'] )
     info = simplejson.loads( self.client._getResource(requestUrl, parameters=parameters, token=accessToken ))
     if re.search(r"Invalid Series", str(info), re.DOTALL | re.IGNORECASE | re.MULTILINE):
         #reset url to programs
         requestUrl = '/catalog/titles/programs/'+curTID
         info = simplejson.loads( self.client._getResource(requestUrl, parameters=parameters, token=accessToken ))
     if re.search(r"Resource Not Found", str(info), re.DOTALL | re.IGNORECASE | re.MULTILINE):
         #reset url to movies
         requestUrl = '/catalog/titles/movies/'+curTID
         info = simplejson.loads( self.client._getResource(requestUrl, parameters=parameters, token=accessToken ))
     return info
Beispiel #15
0
def getAccessToken():
    global config
    consumer = oauth.OAuthConsumer(PUBLIC_KEY, PRIVATE_KEY)
    token = oauth.OAuthToken(config['telldus']['requestToken'],
                             config['telldus']['requestTokenSecret'])
    request = oauth.OAuthRequest.from_consumer_and_token(
        consumer,
        token=token,
        http_method='GET',
        http_url='http://api.telldus.com/oauth/accessToken')
    request.sign_request(oauth.OAuthSignatureMethod_HMAC_SHA1(), consumer,
                         token)
    conn = httplib.HTTPConnection('api.telldus.com:80')
    conn.request(request.http_method,
                 request.to_url(),
                 headers=request.to_header())

    resp = conn.getresponse()
    if resp.status != 200:
        print('Error retrieving access token, the server replied:\n%s' %
              resp.read())
        return
    token = oauth.OAuthToken.from_string(resp.read())
    config['telldus']['requestToken'] = None
    config['telldus']['requestTokenSecret'] = None
    config['telldus']['token'] = str(token.key)
    config['telldus']['tokenSecret'] = str(token.secret)
    print('Authentication successful, you can now use tdtool')
    saveConfig()
Beispiel #16
0
    def getAtHomeList(self,historyType=None,startIndex=None,maxResults=None,updatedMin=None):
        accessToken=self.accessToken
        parameters = {}
        if startIndex:
            parameters['start_index'] = startIndex
        if maxResults:
            parameters['max_results'] = maxResults
        if updatedMin:
            parameters['updated_min'] = updatedMin

        parameters['v'] = str('2.0')
        parameters['filters'] = 'http://api.netflix.com/categories/title_formats/instant'
        parameters['expand'] = '@title,@synopsis,@directors,@formats,@episodes,@short_synopsis'
        parameters['output'] = 'json'
        
        if not isinstance(accessToken, oauth.OAuthToken):
            accessToken = oauth.OAuthToken( 
                                    accessToken['key'],
                                    accessToken['secret'] )

        #if not historyType:
        requestUrl = '/users/%s/at_home' % (accessToken.key)
        #else:
        #    requestUrl = '/users/%s/queues/instant/available/%s' % (accessToken.key,historyType)
        
        try:
            info = simplejson.loads( self.client._getResource(requestUrl, parameters=parameters, token=accessToken ) )
        except:
            return {}
            
        return info
Beispiel #17
0
    def getRecommendedQueue(self,startIndex=None,maxResults=None,updatedMin=None,caUser=None):
        accessToken=self.accessToken
        parameters = {}
        if startIndex:
            parameters['start_index'] = startIndex
        if maxResults:
            parameters['max_results'] = maxResults
        if updatedMin:
            parameters['updated_min'] = updatedMin
        if caUser:
            if (caUser == True):
                parameters['country'] = "ca"
            
        parameters['v'] = str('2.0')
        parameters['filters'] = 'http://api.netflix.com/categories/title_formats/instant'
        parameters['expand'] = '@title,@cast,@synopsis,@directors,@formats,@episodes,@short_synopsis'
        parameters['output'] = 'json'

        if not isinstance(accessToken, oauth.OAuthToken):
            accessToken = oauth.OAuthToken(accessToken['key'], accessToken['secret'] )

        requestUrl = '/users/%s/recommendations' % (accessToken.key)
        
        try:
            info = simplejson.loads( self.client._getResource(requestUrl, parameters=parameters, token=accessToken ) )
        except:
            return {}
        return info
Beispiel #18
0
 def __init__(self, user, client):
     self.requestTokenUrl = REQUEST_TOKEN_URL
     self.accessTokenUrl  = ACCESS_TOKEN_URL
     self.authorizationUrl = AUTHORIZATION_URL
     self.accessToken = oauth.OAuthToken(user['access']['key'], user['access']['secret'] )
     self.client = client
     self.data = None
Beispiel #19
0
    def getRentalHistory(self,historyType=None,startIndex=None, maxResults=None,updatedMin=None):
        accessToken=self.accessToken
        parameters = {}
        if startIndex:
            parameters['start_index'] = startIndex
        if maxResults:
            parameters['max_results'] = maxResults
        if updatedMin:
            parameters['updated_min'] = updatedMin

        parameters['v'] = str('2.0')
        parameters['expand'] = '@title,@synopsis,@directors,@formats,@episodes,@short_synopsis'
        parameters['output'] = 'json'
        
        if not isinstance(accessToken, oauth.OAuthToken):
            accessToken = oauth.OAuthToken(accessToken['key'], accessToken['secret'] )
        #history type must be: NULL, shipped, returned, or watched
        if not historyType:
            requestUrl = '/users/%s/rental_history' % (accessToken.key)
        else:
            requestUrl = '/users/%s/rental_history/%s' % (accessToken.key,historyType)
        
        try:
            info = simplejson.loads( self.client._getResource(requestUrl, parameters=parameters, token=accessToken ) )
        except:
            return {}
            
        return info
Beispiel #20
0
    def set_request_token(self, request_token, request_token_secret):
        """Attach an request token to the DropboxSession.

        Note that the reuest 'token' is made up of both a token string
        and a secret string.
        """
        self.token = oauth.OAuthToken(request_token, request_token_secret)
Beispiel #21
0
    def addTitle(self, discInfo=[], urls=[], queueType='disc', position=None):
        accessToken = self.user.accessToken
        parameters = {}
        if position:
            parameters['position'] = position

        if not isinstance(accessToken, oauth.OAuthToken):
            accessToken = oauth.OAuthToken(accessToken['key'],
                                           accessToken['secret'])

        requestUrl = '/users/%s/queues/disc' % (accessToken.key)
        if not urls:
            for disc in discInfo:
                urls.append(disc['id'])
        parameters['title_ref'] = ','.join(urls)

        if not self.tag:
            response = self.client._getResource(requestUrl, token=accessToken)
            response = simplejson.loads(response, 'latin-1')
            self.tag = response["queue"]["etag"]
        parameters['etag'] = self.tag
        response = self.client._postResource(requestUrl,
                                             token=accessToken,
                                             parameters=parameters)
        return response
Beispiel #22
0
    def getRatings(self, discInfo=[], urls=[]):
        accessToken = self.accessToken

        if not isinstance(accessToken, oauth.OAuthToken):
            accessToken = oauth.OAuthToken(accessToken['key'],
                                           accessToken['secret'])

        requestUrl = '/users/%s/ratings/title' % (accessToken.key)
        if not urls:
            if isinstance(discInfo, list):
                for disc in discInfo:
                    urls.append(disc['id'])
            else:
                urls.append(discInfo['id'])
        parameters = {'title_refs': ','.join(urls)}

        info = simplejson.loads(
            self.client._getResource(requestUrl,
                                     parameters=parameters,
                                     token=accessToken), 'latin-1')

        ret = {}
        for title in info['ratings']['ratings_item']:
            ratings = {
                'average': title['average_rating'],
                'predicted': title['predicted_rating'],
            }
            try:
                ratings['user'] = title['user_rating']
            except:
                pass

            ret[title['title']['regular']] = ratings

        return ret
Beispiel #23
0
 def get_access_token(self, key=None, secret=None, token=None):
     if key and secret:
         token = oauth.OAuthToken(key, secret)
     assert token is not None
     oauth_request = oauth.OAuthRequest.from_consumer_and_token(self.consumer, 
             token=token, http_url=ACCESS_TOKEN_URL)
     oauth_request.sign_request(signature_method, self.consumer, token)
     return self.fetch_token(oauth_request)[:3]
Beispiel #24
0
 def __init__(self, uid, key=None, secret=None):
     self.uid = uid
     self.key = key
     self.secret = secret
     self.consumer = oauth.OAuthConsumer(API_KEY, API_SECRET)
     if key and secret:
         self.token = oauth.OAuthToken(key, secret)
     else:
         self.token = None
Beispiel #25
0
    def testBadRequestToken(self):
        '''Verify that attempting to use a broken request token fails with a 401 HTTP status.'''

        oaBadRequestToken = oauth.OAuthToken('qqqq', 'vvvvv')
        oaBadRequestToken.set_verifier('zipf')

        try:
            oauth_get_access_token(self._oaConsumer, oaBadRequestToken)
        except CascadeHTTPError, e:
            self.assertEquals(401, e.getHTTPStatus())
Beispiel #26
0
    def getData(self):
        accessToken=self.accessToken

        if not isinstance(accessToken, oauth.OAuthToken):
            accessToken = oauth.OAuthToken(accessToken['key'], accessToken['secret'] )
        
        requestUrl = '/users/%s' % (accessToken.key)
        
        info = simplejson.loads( self.client._getResource(requestUrl, token=accessToken ) )
        self.data = info['user']
        return self.data
Beispiel #27
0
 def get_access_token(self, token_, verifier_):
     tokenSecret = self.restoreTokenFromKey(token_)
     request_token = oauth.OAuthToken(token_, tokenSecret)
     oauth_request = oauth.OAuthRequest.from_consumer_and_token(
         self.consumer,
         token=request_token,
         verifier=verifier_,
         http_url=self.client.access_token_url)
     oauth_request.sign_request(self.signature_method_plaintext,
                                self.consumer, request_token)
     return self.client.fetch_access_token(oauth_request)
Beispiel #28
0
def augment(url, parameters):
"""
This function augments the twitter url adding the authontication data necessary for the scrapping.
"""
	secrets = Hidden.oauth()
	consumer = oauth.OAuthConsumer(secrets['consumer_key'], secrets['consumer_secret'])
	token = oauth.OAuthToken(secrets['token_key'], secrets['token_secret'])

	oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer, token=token, http_method='GET', http_url=url, parameters=parameters)
	oauth_request.sign_request(oauth.OAuthSignatureMethod_HMAC_SHA1(), consumer, token)

	return oauth_request.to_url()
Beispiel #29
0
def aumentar(url, parametros):
    credenciales = hidden.oauth()
    consumidor = oauth.OAuthConsumer(credenciales['consumer_key'],
                                     credenciales['consumer_secret'])
    token = oauth.OAuthToken(credenciales['token_key'], credenciales['token_secret'])

    oauth_solicitud = oauth.OAuthRequest.from_consumer_and_token(consumidor,
                      token=token, http_method='GET', http_url=url,
                      parameters=parametros)
    oauth_solicitud.sign_request(oauth.OAuthSignatureMethod_HMAC_SHA1(),
                                 consumidor, token)
    return oauth_solicitud.to_url()
Beispiel #30
0
 def __init__(self, accessToken, accessSecret):
     """class init method
     
     Arguments:
     - `accessToken`:
     - `accessSecret`:
     """
     self._accessToken = oauth.OAuthToken(accessToken, accessSecret)
     self._connection = httplib.HTTPConnection("%s:%d" % (SERVER, PORT))
     self.signature_method_hmac_sha1 = oauth.OAuthSignatureMethod_HMAC_SHA1(
     )
     self.consumer = oauth.OAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET)