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 = [(escape(convert_to_utf8_str(k)), escape(convert_to_utf8_str(v))) \ for k, v in params.items()] # 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])
def build_parameters(self, args, kargs): self.parameters = {'format': 'json'} # bind here, as default for idx, arg in enumerate(args): try: self.parameters[self.allowed_param[idx]] = convert_to_utf8_str(arg) except IndexError: raise QWeiboError('Too many parameters supplied!') for k, arg in kargs.items(): if bool(arg) == False: continue if k in self.parameters: raise QWeiboError('Multiple values for parameter `%s` supplied!' % k) #if k not in self.allowed_param: # raise QWeiboError('`%s` is not allowd in this API function.' % k) self.parameters[k] = convert_to_utf8_str(arg)
def build_parameters(self, args, kargs): # bind here, as default self.parameters = {'format': self.payload_format} for idx, arg in enumerate(args): try: self.parameters[self.allowed_param[idx]] = quote( convert_to_utf8_str(arg)) except IndexError: raise QWeiboError('Too many parameters supplied!') for k, arg in kargs.items(): if bool(arg) == False: continue if k in self.parameters: raise QWeiboError( 'Multiple values for parameter `%s` supplied!' % k) #if k not in self.allowed_param: # raise QWeiboError('`%s` is not allowd in this API function.' % k) self.parameters[k] = quote(convert_to_utf8_str(arg))
def to_postdata(self): """Serialize as post data for a POST request.""" return '&'.join(['%s=%s' % (escape(convert_to_utf8_str(k)), escape(convert_to_utf8_str(v))) \ for k, v in self.parameters.items()])