2011-08-02 66 views

回答

1

「2條腿」是沒有訪問令牌或訪問令牌祕密只是正常的OAuth請求。而已。您仍然使用客戶端憑據(標識符和密鑰),但使用空字符串作爲訪問令牌參數。根據您使用的服務器庫,在發出請求時可以省略oauth_token參數。

5

我花了大約3天試圖弄清楚這一點,並希望提供給任何人誰可以用這個工作使用例子我終於從我試圖查詢的服務中獲得。它結束了非常容易。附:僅僅因爲有人使用oauth 1.0 不會意味着你不能使用oauth2庫。

要獲得auth2,請鍵入pip install oauth2。

在腳本中,你需要:

import oauth2 
import time 
import urllib2 


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='python_test',secret='your_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 

調用函數和查看輸出如下所示:

request = build_request('http://demo.echo360.com/ess/scheduleapi/v1/terms') 
u = urllib2.urlopen(request.to_url()) 
print u.readlines() 
+0

搞怪,它的確切相同的源代碼,我的其他問題之一: http://stackoverflow.com/questions/6924569/doing-a-file-upload-with-python-oauth2#comment9204818_69245。而oauth2庫僅適用於OAuth 1.0a。非常令人困惑的圖書館名稱...... –