Ejemplo n.º 1
0
    def _getOAuthRequest(self, http_method, method, parameters={}, headers={}):
        if http_method == 'POST':
            url = self.getUrl(method, {})
        else:
            url = self.getUrl(method, parameters)

        token = oauth.OAuthToken(self.client['tkey'], self.client['tsec'])
        oauth_request = oauth.OAuthRequest.from_consumer_and_token(
            self.consumer,
            token=token,
            http_method=http_method,
            http_url=url,
            parameters=parameters)
        oauth_request.sign_request(self.signature_method, self.consumer, token)

        headers.update(oauth_request.to_header())

        if http_method == 'POST':
            headers['Content-Type'] = 'application/x-www-form-urlencoded'
            postdata = '&'.join(['%s=%s' % (oauth.escape(oauth._utf8_str(k)),
                                            oauth.escape(oauth._utf8_str(v))) \
                                 for k, v in oauth_request.parameters.iteritems()])
        else:
            postdata = ""
        return url, postdata, headers
Ejemplo n.º 2
0
    def get_normalized_parameters(self):
        """Return a string that contains the parameters that must be signed."""
        params = self.parameters
        try:
            # Exclude the signature if it exists.
            del params['oauth_signature']
        except:
            pass
        # Escape key values before sorting.
        key_values = []
        for k, values in params.iterlists():
            for v in values:
                key_values.append((escape(_utf8_str(k)), escape(_utf8_str(v))))

        # Sort lexicographically, first after key, then after value.
        key_values.sort()
        # Combine key value pairs into a string.
        return '&'.join(['%s=%s' % (k, v) for k, v in key_values])
Ejemplo n.º 3
0
    def _getOAuthRequest(self, http_method, method, parameters={}, headers={}):
        if http_method == 'POST':         
            url = self.getUrl(method, {})
        else:
            url = self.getUrl(method, parameters)
            
        token = oauth.OAuthToken(self.client['tkey'], self.client['tsec'])
        oauth_request = oauth.OAuthRequest.from_consumer_and_token(self.consumer, token=token, http_method=http_method, http_url=url, parameters=parameters)
        oauth_request.sign_request(self.signature_method, self.consumer, token)

        headers.update(oauth_request.to_header())
      
        if http_method == 'POST':
            headers['Content-Type'] = 'application/x-www-form-urlencoded'
            postdata = '&'.join(['%s=%s' % (oauth.escape(oauth._utf8_str(k)),
                                            oauth.escape(oauth._utf8_str(v))) \
                                 for k, v in oauth_request.parameters.iteritems()])
        else:
            postdata = ""
        return url, postdata, headers
Ejemplo n.º 4
0
 def get_normalized_parameters(self):
     """Return a string that contains the parameters that must be signed."""
     params = self.parameters
     try:
         # Exclude the signature if it exists.
         del params['oauth_signature']
     except:
         pass
     # Escape key values before sorting.
     key_values = []
     for key, value in params.iteritems():
         if isinstance(value, basestring):
             esc_value = escape(_utf8_str(value))
             esc_key = escape(_utf8_str(key))
             key_values.append((esc_key, esc_value))
         else:
             try:
                 esc_value = escape(_utf8_str(value))
                 esc_key = escape(_utf8_str(key))
                 list(value)
             except TypeError, error:
                 assert 'is not iterable' in str(error)
                 key_values.append((esc_key, esc_value))
             else:
                 key_values.extend((escape(_utf8_str(key)), escape(_utf8_str(item)) if isinstance(item, basestring) else item) for item in value)
Ejemplo n.º 5
0
    def get_normalized_parameters(self):
        """
        Return a string that contains the parameters that must be signed.
        """
        Log.debug("[Method] get_normalized_parameters")
        params = self.parameters
        try:
            # Exclude the signature if it exists.
            del params['oauth_signature']
        except:
            pass

        # Escape key values before sorting.
        key_values = []
        for key, value in params.iteritems():
            if isinstance(key, basestring) and not _is_post_values_key(key):
                key_values.append((escape(_utf8_str(key)), escape(_utf8_str(value))))
            else:
                try:
                    value = list(value)
                except TypeError, e:
                    assert 'is not iterable' in str(e)
                    key_values.append((escape(_utf8_str(key)), escape(_utf8_str(value))))
                else:
                    if _is_post_values_key(key):
                        key = _remove_post_values_key(key)
                    key_values.extend((escape(_utf8_str(key)), escape(_utf8_str(item)) if isinstance(item, basestring) else item) for item in value)
Ejemplo n.º 6
0
 def get_normalized_parameters(self):
     """Return a string that contains the parameters that must be signed."""
     params = self.parameters
     try:
         # Exclude the signature if it exists.
         del params['oauth_signature']
     except:
         pass
     # Escape key values before sorting.
     key_values = []
     for key, value in params.iteritems():
         if isinstance(value, basestring):
             esc_value = escape(_utf8_str(value))
             esc_key = escape(_utf8_str(key))
             key_values.append((esc_key, esc_value))
         else:
             try:
                 esc_value = escape(_utf8_str(value))
                 esc_key = escape(_utf8_str(key))
                 list(value)
             except TypeError, error:
                 assert 'is not iterable' in str(error)
                 key_values.append((esc_key, esc_value))
             else:
                 key_values.extend(
                     (escape(_utf8_str(key)),
                      escape(_utf8_str(item)
                             ) if isinstance(item, basestring) else item)
                     for item in value)
Ejemplo n.º 7
0
    def get_normalized_parameters(self):
        """
        Return a string that contains the parameters that must be signed.
        """
        Log.debug("[Method] get_normalized_parameters")
        params = self.parameters
        try:
            # Exclude the signature if it exists.
            del params['oauth_signature']
        except:
            pass

        # Escape key values before sorting.
        key_values = []
        for key, value in params.iteritems():
            if isinstance(key, basestring) and not _is_post_values_key(key):
                key_values.append(
                    (escape(_utf8_str(key)), escape(_utf8_str(value))))
            else:
                try:
                    value = list(value)
                except TypeError, e:
                    assert 'is not iterable' in str(e)
                    key_values.append(
                        (escape(_utf8_str(key)), escape(_utf8_str(value))))
                else:
                    if _is_post_values_key(key):
                        key = _remove_post_values_key(key)
                    key_values.extend(
                        (escape(_utf8_str(key)),
                         escape(_utf8_str(item)
                                ) if isinstance(item, basestring) else item)
                        for item in value)