2

我正在尝试使用 python-twitter 库在列表中关注某些用户。但是对于某些用户,我正在接受“您已经要求关注用户名”错误。这意味着我已向该用户发送了以下请求,因此我不能再这样做了。那么如何控制用户,我发送了以下请求。或者有没有其他方法可以控制它。

for userID in UserIDs:
    api.CreateFriendship(userID)

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

4

2 回答 2

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
    

希望有帮助。

于 2013-06-29T19:58:43.410 回答
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',[])
于 2016-04-05T03:36:03.927 回答