2013-07-29 41 views
-1

我嘗試通過Python使用Twitter API。我使用oauth庫和更新功能。{「errors」:[{「message」:「無法對您進行身份驗證」,「code」:32}]}

的代碼是:

oauth_token = oauth.Token(key=twitter_settings.access_token_key, secret=twitter_settings.access_token_secret) 
oauth_consumer = oauth.Consumer(key=twitter_settings.consumer_key, secret=twitter_settings.consumer_secret) 

signature_method_hmac_sha1 = oauth.SignatureMethod_HMAC_SHA1() 

http_handler = urllib.HTTPHandler(debuglevel=_debug) 
https_handler = urllib.HTTPSHandler(debuglevel=_debug) 

def twitter_req(url, method, parameters): 
    req = oauth.Request.from_consumer_and_token(oauth_consumer, 
              token=oauth_token, 
              http_method=http_method, 
              http_url=url, 
              parameters=parameters) 

    req.sign_request(signature_method_hmac_sha1, oauth_consumer, oauth_token) 

    headers = req.to_header() 

    if method == "POST": 
    encoded_post_data = req.to_postdata() 
    else: 
    encoded_post_data = None 
    url = req.to_url() 

    print encoded_post_data 
    print url 
    opener = urllib.OpenerDirector() 
    opener.add_handler(http_handler) 
    opener.add_handler(https_handler) 

    response = opener.open(url, encoded_post_data) 

    return response 

update_url = "https://api.twitter.com/1.1/statuses/update.json" 
update_parameters = {'status': "test"}  

update_response = twitter_req(update_url, "POST", update_parameters) 

我得到這個錯誤:

{"errors":[{"message":"Could not authenticate you","code":32}]} 

我花幾個小時,試圖找到在互聯網上的答案,但我不能。請幫忙。

+0

我有同樣的問題,你如何設法解決它? –

回答

0

您的OAuth簽名有問題。

注意在http_method=method變化不http_method=http_method

req = oauth.Request.from_consumer_and_token(oauth_consumer, 
              token=oauth_token, 
              http_method=method, 
              http_url=url, 
              parameters=parameters) 

您也可以找到this page helpful解釋什麼錯誤代碼的意思。

+0

是的,它有幫助。非常感謝你。 – rvnikita

相關問題