是的,这是可能的。但并非只有一个 Instagram API 请求。
不幸的是,每个请求只能获取一个用户信息。如果您需要 100-1000 位名人,您应该组织此列表(使用 instagram id)并通过它执行循环以使用此端点对 Instagram API 执行 100-1000 个请求:
https://api.instagram.com/v1/users/{user-id}/?access_token=ACCESS-TOKEN
响应将如下所示
{
"data": {
"id": "1574083",
"username": "snoopdogg",
"full_name": "Snoop Dogg",
"profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg",
"bio": "This is my bio",
"website": "http://snoopdogg.com",
"counts": {
"media": 1320,
"follows": 420,
"followed_by": 3410
}
}
您应该为每个用户保存 data->counts->followed_by,然后执行按这些数字排序的查询。
我建议在请求之间设置一点等待时间(sleep(t) in php)以避免 Instagram 将您的请求理解为 DOS 攻击并阻止您。
- 你没有问,但你可能只知道名人的用户名。要获取他们的 Instagram ID,您需要使用此端点使用确切的用户名搜索用户:
https://api.instagram.com/v1/users/search?q={username}&access_token=ACCESS-TOKEN
考虑到您使用的是准确的用户名,第一个结果将是您要查找的用户。响应将如下所示(使用 q=jack):
{
"data": [{
"username": "jack",
"first_name": "Jack",
"profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_66_75sq.jpg",
"id": "66",
"last_name": "Dorsey"
},
{
"username": "sammyjack",
"first_name": "Sammy",
"profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_29648_75sq_1294520029.jpg",
"id": "29648",
"last_name": "Jack"
},
{
"username": "jacktiddy",
"first_name": "Jack",
"profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_13096_75sq_1286441317.jpg",
"id": "13096",
"last_name": "Tiddy"
}]
}
将 data[0]->id 保存到您的数据库中,以便稍后执行用户信息请求。
祝你好运。