使用Python获取Twitter朋友号

时间:2015-10-21 14:48:52

标签: python twitter request

我需要从用户那里获得Twitter好友。使用Twitter" 朋友 "我的意思是用户 A跟随用户B 用户B跟随A 。 好吧,所以我的想法是得到一个用户A跟随的人员列表,如果他们跟着用户B,它会增加numFriends。 第一部分工作正常,但当我做第二个请求它崩溃并抛出一个丑陋的错误400' :( 我读到了关于twitter的限制以及所有这些,但第二次请求似乎很奇怪,所以我不知道它是否正常。

提前谢谢你,我是python和twitter api的菜鸟,我的母语不是英语,所以我真的希望一切都清楚。我将感谢任何有关此事的帮助。

以下是代码:)

def getNumFriends(user):

    dataUser=0
    numFriends=0
    url ="https://api.twitter.com/1.1/friends/ids.json?cursor=-1&screen_name=%s&count=5000"%(user.screen_name)
    auth = OAuth1(getConsumerKey(), getConsumerSecret(), getAccessToken(), getAccessTokenSecret())
    response = requests.get(url, auth=auth)
    if response.status_code == 200:
        dataUser = response.json()
        userIDs = dataUser['ids']
    else: 
        print "Error code %s" %response.status_code
    #Here comes the problem :S
    for friend in userIDs:
        url = "https://api.twitter.com/1.1/friendships/show.json?source_id=%s&target_screen_name=%s"%(friend, user)
        response = requests.get(url, auth)
        if response.status_code == 200:
            dataCompare = response.json()    
            mutualfriends = dataCompare['relationship']['target']['followed_by']
            if mutualfriends =='true':
                numFriends=numFriends+1
        else:
            print "First request OK. Second request error code %s" %response.status_code
            break       
    return numFriends

1 个答案:

答案 0 :(得分:0)

你的代码很好,只有一些小错误。错误代码400,"错误的请求",并没有给你非常具体的信息,但它告诉你,你写url的方式是错误的。

应该是:

url = "https://api.twitter.com/1.1/friendships/show.json?source_id=%s&target_screen_name=%s"%(friend, user.screen_name)

即它应该是user.screen_name而不是用户。

此外,requests.get()的第二个参数不是auth,因此您应该始终指定参数的名称,

response = requests.get(url, auth=auth)

在你的第二次电话会议中并非如此。

顺便说一句,好奇,您没有使用像twython这样的库的任何理由?

希望它有所帮助。

**评论后编辑:** 代码中还有一个小错误。请注意,您的变量mutualfriends已经是布尔值,为了检查它的值,您可以这样做,

if mutualfriends:
    ...

BTW,检查变量的类型,

print(type(mutualfriends))