如何从Twitter API获取粉丝数和趋势线计数

24

我正在撰写一些有关Twitter上粉丝数量随时间变化的报告,但是在经过大量搜索和试错之后,我仍然无法获得粉丝数量随时间变化的数据,特别是过去的粉丝数量。

我知道有一种API可以获取每个粉丝的userId,但这对我来说太过复杂了,而且我需要每天进行调用。理想情况下,如果我能传递一个日期,它就可以返回该日期的粉丝数量。

有没有人有这方面的经验,并知道哪个API可以实现这个功能!

谢谢

5个回答

39

尽管没有直接获取趋势线的 API,但获取跟随者数量相当容易,可以通过 URL 访问:

http://api.twitter.com/1/users/show.json?user_id=12345

文档已经包含所有内容 @ https://dev.twitter.com/docs/api/1/get/users/show

为了获得趋势线,似乎我需要每天查询一次!

更新为 Twitter API v1.1

https://api.twitter.com/1.1/users/show.json?user_id=12345

请参考https://dev.twitter.com/docs/api/1.1/get/users/show上的文档。

更新于2018年5月31日

新的API端点在此处。

https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-users-show

1
这个有速率限制吗?有没有人能详细说明一下如何在没有速率限制的情况下获取特定用户的关注者数量?我注意到我可以在未经身份验证的情况下访问v1 - 但这很快就会被废弃了? - Ojame
你可以每15分钟内有限次数地调用API端点。某些端点允许100个请求,其他一些则允许更多,每个时间窗口内的请求量不同。请注意,这些限制是基于你所拥有的用户令牌,因此允许查询的数量相当大。 - chesscov77
费率为180元/15分钟。 - tom10271
请更新为V2版本。 - ZedBee
@ZedBee,请检查我的答案。 :) - oxyt
显示剩余2条评论

5

我知道这是一个老问题,但我想为那些仍在寻找获取Twitter粉丝数量的替代方法的人提供答案。经过我花费时间查阅文档后,我发现您需要通过开发者门户申请升级访问权,以便获取更多的信息。对于这种访问级别,您需要在开发者门户内申请附加访问权限。您可以从这里检查访问级别。

https://developer.twitter.com/en/docs/twitter-api/getting-started/about-twitter-api#v2-access-level

经过一番搜索和调查,我找到了这个方法。它不需要身份验证,但我不能保证它将来不会被禁用。只需提供您想要查询的任何账户的screen_name即可。例如:

https://cdn.syndication.twimg.com/widgets/followbutton/info.json?screen_names=binance

... 这将给您提供类似以下内容:

[
    {
        "following": false,
        "id": "877807935493033984",
        "screen_name": "binance",
        "name": "Binance",
        "protected": false,
        "followers_count": 6959348,
        "formatted_followers_count": "6.96M followers",
        "age_gated": false
    }
]

1
二月初还在工作 :-D - boatcoder
它确实有速率限制,但我不确定具体的限制是什么。 - boatcoder
2
这个已经在2023年2月15日之后不再起作用了。它只会返回一个空响应。 - ndbroadbent

5

这里是一个简单的PHP示例,使用CURL获取已选择的个人资料(此处为@TwitterFrance)的关注者数量,并使用v2 API和持票人令牌(持票人令牌是一种通过OAuth 2.0 API访问公共数据的简化方法),不涉及任何库。

$authorization = "Authorization: Bearer YOUREXTRALONGBEARERYOUREXTRALONGBEARERYOUREXTRALONGBEARERYOUREXTRALONGBEARERYOUREXTRALONGBEARERYOUREXTRALONGBEAR";
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $authorization));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, "https://api.twitter.com/2/users/by/username/TwitterFrance?user.fields=public_metrics");
$result = curl_exec($ch);
curl_close($ch);
if (is_string($result)) {
    echo (json_decode($result)->data->public_metrics->followers_count);
    die();
}

我想获取特定Twitter用户的关注者列表,你能给我指点一下吗?这是问题链接:https://stackoverflow.com/questions/76726633/get-twitter-account-followers-using-api-and-google-apps-script - EagleEye

2

使用Python:

import tweepy
twitter = tweepy.Client(bearer_token="your bearer token")

单个用户:

print(twitter.get_user(username="twitter username", user_fields=["public_metrics"]).data.public_metrics['followers_count'])

多用户:

for i in twitter.get_users(usernames=twitterProfiles, user_fields=["public_metrics"]).data:
  print(i.public_metrics['followers_count'])

2
在Swift 4.2和Xcode 10.1中获取Twitter的followers_count,您需要将Twitter SDK集成到您的应用程序中,并遵循集成详细说明:https://github.com/twitter/twitter-kit-ios。"最初的回答"
//This is complete url 
https://api.twitter.com/1.1/users/show.json?screen_name=screenName

func getStatusesUserTimeline(accessToken:String) {

    let userId = "109*************6"
    let twitterClient = TWTRAPIClient(userID: userId)
    twitterClient.loadUser(withID: userId) { (user, error) in
        print(userId)
        print(user ?? "Empty user")
        if user != nil {
            var request = URLRequest(url: URL(string: "https://api.twitter.com/1.1/users/show.json?screen_name=screenName")!)

            request.httpMethod = "GET"
            request.setValue("Bearer "+accessToken, forHTTPHeaderField: "Authorization")
            print(request)

            let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data, error == nil else { // check for fundamental networking error
                print("error=\(String(describing: error))")
                return
                }

                if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { // check for http errors
                    print("statusCode should be 200, but is \(httpStatus.statusCode)")
                    print("response = \(String(describing: response))")
                }

                do {
                    let response = try JSONSerialization.jsonObject(with: data, options: []) as! Dictionary<String,Any>
                    print(response)
                    // print((response["statuses"] as! Array<Any>).count)

                } catch let error as NSError {
                    print(error)
                }
            }

            task.resume()

        } else {
            print(error?.localizedDescription as Any)
        }
    }

}

我想获取特定Twitter用户的关注者列表,你能帮我指导一下吗?这是问题链接:https://stackoverflow.com/questions/76726633/get-twitter-account-followers-using-api-and-google-apps-script - EagleEye

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接