如何通过python-twitter找到关注请求的用户

时间:2013-06-28 22:11:38

标签: python twitter python-twitter

我正在尝试使用python-twitter库跟踪列表中的某些用户。但我正在采取“你已经要求关注用户名”错误的一些用户。这意味着我已向该用户发送了以下请求,因此我无法再次执行此操作。那么如何控制用户,我发送了以下请求。还是有其他方法来控制它。

for userID in UserIDs:
    api.CreateFriendship(userID)

编辑:我正在总结:您可以随时关注一些用户。但是有些人不接受它。首先你必须发送友情请求,然后他/她可能接受或不接受。我想学习的是,我如何列出所请求的用户。

2 个答案:

答案 0 :(得分: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
    

希望有所帮助。

答案 1 :(得分:0)

自从提出这个问题以来已经差不多三年了,但回复参考,因为它显示为Google问题时的最高点。

截至本文时,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',[])