2010-09-19 195 views
2
 
def send_to_twitter(): 
    msg = "I am a message that will be sent to Twitter" 
    password_manager = urllib.request.HTTPPasswordMgr() 
    password_manager.add_password("Twitter API", 
    "http://twitter.com/statuses", "username", "password") 
    http_handler = urllib.request.HTTPBasicAuthHandler(password_manager) 
    page_opener = urllib.request.build_opener(http_handler) 
    urllib.request.install_opener(page_opener) 
    params = urllib.parse.urlencode({'status': msg}) 
    resp = urllib.request.urlopen("http://twitter.com/statuses/update.json", params) 
    resp.read() 

當我通過IDLE執行此代碼時,出現錯誤;Twitter,錯誤:urllib.error.HTTPError:HTTP錯誤401:未授權

 
urllib.error.HTTPError: HTTP Error 401: Unauthorized 

我的代碼可能有問題嗎?

+0

這是必須用錯誤的用戶名或密碼做些什麼.. – Dananjaya 2010-09-19 07:10:42

回答

4

Twitter no longer supports HTTP Authentication。你應該使用oauth代替。

tweepy似乎是一個很好的圖書館,如果你想從Python做Twitter:它是最新的,支持宣誓,看起來非常完整。

+0

+1對於Tweepy很好的庫建立了我自己的客戶端:) – 2010-09-19 07:34:14

1

您正在使用舊的HTTP身份驗證方法。使用OAuth升級。

轉到下面的鏈接設置你的Twitter應用程序:twitter.com/apps/new (提示:您可以將您的網址爲127.0.0.1用於測試目的並記住應用程序設置爲瀏覽器,並指定回調URL)

你可以從那裏繼續。