2013-06-28 24 views
2

我想跟隨一些用戶在Python-twitter庫的列表中。但我對某些用戶採取了「您已經要求關注用戶名」的錯誤。這意味着我已經向該用戶發送了以下請求,所以我不能再這樣做。那麼我如何控制用戶,我發送了下面的請求。或者有其他方法來控制它。我怎麼能找到跟隨請求的用戶與蟒蛇嘰嘰喳喳

for userID in UserIDs: 
    api.CreateFriendship(userID) 

編輯:我總結:你可以按照一些用戶,當你想要的。但有些人不會放過它。首先你必須發送友誼請求,然後他/她可以接受或不接受。我想學的是,我如何列出請求的用戶。

回答

2

你這裏有兩種選擇:

  • 呼叫GetFriends循環之前:

    users = [u.id for u in api.GetFriends()] 
    for userID in UserIDs: 
        if userID not in users: 
         api.CreateFriendship(userID) 
    
  • 使用try/except

    for userID in UserIDs: 
        try: 
         api.CreateFriendship(userID) 
        except TwitterError: 
         continue 
    

希望有所幫助。

+0

我想了解的是,我怎麼能看到友誼的被請求用戶。不是我接受的朋友。但第二個選擇可以工作。 – Yavuz

+0

我認爲沒有辦法使用twitter API獲取待定的友誼請求。所以,你應該選擇第二個選項。 – alecxe

0

這個問題被問到已經接近三年了,但迴應參考,因爲它顯示爲當你谷歌的問題時的熱門。

從這篇文章來看,python-twitter仍然是這種情況(即沒有用python-twitter直接識別待處理的友情或追隨者的請求)。

也就是說,可以擴展API類來實現它。一個例子可以在這裏找到:https://github.com/itemir/twitter_cli

相關片段:

class ExtendedApi(twitter.Api): 
    ''' 
    Current version of python-twitter does not support retrieving pending 
    Friends and Followers. This extension adds support for those. 
    ''' 
    def GetPendingFriendIDs(self): 
     url = '%s/friendships/outgoing.json' % self.base_url 
     resp = self._RequestUrl(url, 'GET') 
     data = self._ParseAndCheckTwitter(resp.content.decode('utf-8')) 

    return data.get('ids',[]) 

    def GetPendingFollowerIDs(self): 
     url = '%s/friendships/incoming.json' % self.base_url 
     resp = self._RequestUrl(url, 'GET') 
     data = self._ParseAndCheckTwitter(resp.content.decode('utf-8')) 

     return data.get('ids',[])