使用python-oauth2进行文件上载
Get请求非常简单:使用python-oauth2进行文件上载,python,file-upload,oauth,Python,File Upload,Oauth,Get请求非常简单: def build_request(url, method='GET'): params = { 'oauth_version': "1.0", 'oauth_nonce': oauth2.generate_nonce(), 'oauth_timestamp': int(time.time()) } consumer
def build_request(url, method='GET'):
params = {
'oauth_version': "1.0",
'oauth_nonce': oauth2.generate_nonce(),
'oauth_timestamp': int(time.time())
}
consumer = oauth2.Consumer(key='****',secret='******')
params['oauth_consumer_key'] = consumer.key
req = oauth2.Request(method=method, url=url, parameters=params)
signature_method = oauth2.SignatureMethod_HMAC_SHA1()
req.sign_request(signature_method, consumer, None)
return req
但是现在,我们想用一个文件发表一篇文章。(我们正在使用python-oauth2库)。建议?从阅读源代码可以看出,请求采用了一种方法来声明要使用的HTTP请求 只需将您的请求更改为
req = oauth2.Request(method='POST', url=url, parameters=params)
更多信息
这可能在一定程度上解决了您的问题,对于文件上载,您可以使用提供标题的内容,请参见:
抱歉,我还没有机会测试这一点。问题是oauth不应该对多部分/post数据进行签名,但它仍然需要对其他参数进行签名。我绕过它的方法是使用python-oauth2对非文件参数进行签名,然后使用urllib2手动发送请求
这是一个例子。参见第126-173行。我在这里举了个例子,API v2感谢@jterrace