2016-03-08 79 views
1

试图为oauth使用method = plaintext。我很难找到任何示例,或者以前有关纯文本的问题。“PLAINTEXT”oauth请求

对于那些不知道它是什么但想要帮助的人,this document provides a nice overview

import requests 
from requests_oauthlib import OAuth1 
from rauth import OAuth1Session, OAuth1Service 

myheaders = {'Authorization': 'OAuth ,oauth_consumer_key="5C82CC6BC7C6472154FBC9CAB24A29A2",oauth_signature_method="PLAINTEXT", oauth_signature="F9D6B42C41A618C273AB501F2F2613F1"'} 
url = 'https://secure.tmsandbox.co.nz/Oauth/RequestToken?scope=MyTradeMeRead,MyTradeMeWrite ' 
r = requests.get(url, params=myheaders) 
print(r) 

这给了我< Response [400]>

任何想法,为什么? (钥匙给定的工作,但仿制品)

回答

1

当打印内容是这样的:

>>>print (r.content) 
The oauth_consumer_key parameter is required. 

你有一些语法错误,你myheaders字典格式不正确,修复它是这样的:

import requests 
from requests_oauthlib import OAuth1 
from rauth import OAuth1Session, OAuth1Service 

myheaders = {'Authorization':'OAuth', 
      'oauth_consumer_key':'5C82CC6BC7C6472154FBC9CAB24A29A2', 
      'oauth_signature_method': 'PLAINTEXT', 
      'oauth_signature': 'F9D6B42C41A618C273AB501F2F2613F1'} 
url = 'https://secure.tmsandbox.co.nz/Oauth/RequestToken?scope=MyTradeMeRead,MyTradeMeWrite ' 
r = requests.get(url, params=myheaders) 
print(r.status_code) 
print(r.content) 

>>401 
>>Invalid PLAINTEXT signature. 

看来你还有另一个我无法弄清楚的错误

+0

嘿@massiou,我使用API​​给出的当前密钥?我确定它是正确的? – musss

+0

好了,错字:'OAuth' – mvelay

+0

尝试过,但仍然得到相同的东西 – musss