So I already have a script that collects the first 4999 followers ids of a twitter user using the API in xml format. I semi understand how the cursor process works but I am confused how to implement it to loop until it gathers all the followers. The user I am attempting to gather will take about 8 calls. Any ideas on how to implement the cursor loop?
<?php
$xmldata = 'http://api.twitter.com/1/followers/ids/microsoft.xml';
$open = fopen($xmldata, 'r');
$content = stream_get_contents($open);
fclose($open);
$xml = simplexml_load_file($xmldata);
$cursor = $xml->next_cursor;
$file = fopen ('output1.csv', 'w+');
fwrite($file, "User idnr");
while($cursor =! 0)
{
foreach ($xml->ids->id as $id)
{
fwrite($file, $id . ", ");
fwrite($file, "n");
}
$xmldata = 'http://api.twitter.com/1/followers/ids.xml?cursor='. $cursor
.'&screeb_name=microsoft';
?>
Advertisement
Answer
Let me take an example of Microsoft’s followers (346K followers) as of now.
https://api.twitter.com/1/followers/ids.json?cursor=-1&screen_name=microsoft
It fetches only 5000 user IDs, that the twitter API limit. So, you need to take the next_cursor string from the json output
next_cursor_str”:”1418048755615786027″
So, your next call would be
https://api.twitter.com/1/followers/ids.json?cursor=1418048755615786027&screen_name=microsoft
Keep doing this until the next_cursor is ZERO.
As you keep doing again and again, just keep storing all the ids..