2014-02-23 50 views
0

我正在嘗試編寫一個小型Twitter應用程序。例如,我已經設法從Twitter文檔運行身份驗證Python示例,並且可以從「statuses/home_timeline.json」中獲取數據。無法在Python中使用1.1 API獲取twitter用戶時間線

但現在我試圖使用「狀態/ user_timeline.json」,並沒有骰子。

這裏是我使用的代碼。這只是網頁中示例的修改。什麼可能是錯誤的?我三重檢查了服務URI。這不正確嗎?

我使用github的python-oauth2-1.0.0版本,這個文檔引用的項目很古老。有更好的模塊,我應該使用?順便說一下,client.request中有一個不正確的參數。

另一件事:我可以使用curl運行查詢,並在Twitter開發網頁上創建命令行。

import oauth2 as oauth 

CONSUMER_KEY = 'xxxxxxxxxxxxx' 
CONSUMER_SECRET = 'xxxxxxxxxxxxxxxxxxxxxx' 
ACCESS_KEY = 'xxxxxxxxxxxx' 
ACCESS_SECRET = 'xxxxxxxxxxxxxxxxx' 


def oauth_req(url, key, secret, http_method="GET", post_body=None, 
       http_headers=None): 
    consumer = oauth.Consumer(key=CONSUMER_KEY, secret=CONSUMER_SECRET) 
    token = oauth.Token(key=key, secret=secret) 
    client = oauth.Client(consumer, token) 

    resp, content = client.request(
     url, 
     method=http_method, 
     body=post_body, 
     headers=http_headers 
    ) 
    return content 


# home_timeline = oauth_req(
#  'https://api.twitter.com/1.1/statuses/home_timeline.json', 
#  ACCESS_KEY, 
#  ACCESS_SECRET 
#) 

home_timeline = oauth_req(
    'https://api.twitter.com/1.1/statuses/user_timeline.json?count=3&screen_name=twitterapi', 
    ACCESS_KEY, 
    ACCESS_SECRET 
) 

print home_timeline 
+0

我從user_timeline查詢得到的錯誤是: {「錯誤」:[{「消息」:「對不起,該網頁不存在」,「密碼」:34}]} – dividebyzero

+1

我們使用完全相同的上述方法來獲取一組用戶的推文。區別在於,我們使用user_id並在client.request調用中只指定了「url」參數,並且這一數月來一直正常工作。只要所有數據類型(字符串,int等)被正確指定,就不會發現任何明顯的錯誤。 HTTP404,通常在用戶帳戶不存在時返回代碼34。 – Vishal

+0

複製粘貼更多的差異。嘗試使用include_rts = true。 #prep資源網址包含TwitterID:twit_url = twitter_statuses_user +'user_id ='+ str(twitID)+'&trim_user = true&exclude_replies = true&include_rts = true'+'&count = 200'#max is 200 – Vishal

回答

2

我推薦使用Twython包。您可以通過安裝它:

pip install twython 

或 的easy_install twython

您可以使用下面的代碼來獲得用戶時間表

import twython 
CONSUMER_KEY = 'XXXXXXXXXXXX' 
CONSUMER_SECRET = 'XXXXXXXXXXXXXXX' 
twitter = twython.Twython(CONSUMER_KEY,CONSUMER_SECRET) 
home_timeline = twitter.get_user_timeline(screen_name='@twitterapi') 
print home_timeline 
+0

這看起來不錯,謝謝您的建議。我會在下次嘗試!... – dividebyzero

0

它後,我安裝了最新版本的Python工作-oauth2 ... Twitter真的應該更新他們的文檔。感謝大家的幫助!

相關問題