2016-03-08 113 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