2012-03-26 63 views
5

python-oauth2 GitHub的頁面提供有關如何創建與req = oauth.Request(...),它返回一個可簽訂字典簽署請求指示。但我如何真正發送這些請求?簽名請求使用python-的oauth2

+0

這是一個重複? http://stackoverflow.com/questions/2138656/signing-requests-in-python-for-oauth – Daenyth 2012-03-26 15:28:16

+1

@Daenyth:這是不是這個問題的一個副本。這個問題有自定義Python代碼來創建簽名這個問題是使用'python-oauth2'庫。 – abraham 2012-03-26 17:45:56

+0

太局部化了? WTF – Jannis 2015-03-17 11:22:06

回答

1

看自述下一步。

使用客戶端

import oauth2 as oauth 

# Create your consumer with the proper key/secret. 
consumer = oauth.Consumer(key="your-twitter-consumer-key", 
    secret="your-twitter-consumer-secret") 

# Request token URL for Twitter. 
request_token_url = "http://twitter.com/oauth/request_token" 

# Create our client. 
client = oauth.Client(consumer) 

# The OAuth Client request works just like httplib2 for the most part. 
resp, content = client.request(request_token_url, "GET") 
print resp 
print content 
+1

我認爲我是極其糟糕的文檔的受害者。我認爲我甚至不需要「簽名」部分,因爲客戶端在您的示例中所做的似乎足以滿足OAuth服務的需求。 – Steve 2012-03-27 11:05:48

4

就在末尾加上這一行:

rs = urllib2.urlopen(req.to_url()) 

哪裏req是Request對象。

+0

這對我不起作用 - 它只是將(無符號)請求發送到url。我收到了一些「錯誤的身份驗證數據」消息,因爲請求沒有被簽名。 – pcv 2013-01-30 00:34:44

+2

實際上,文檔在客戶端缺少令牌參數。 應該是:client = oauth.Client(consumer,token); resp,content = client.request(URL,「GET」)順便說一句。爲什麼這個問題關閉? – pcv 2013-01-30 00:50:20