3

Guys I'm working around the Instagrams API to get all images with a specific tag.

Here is my code:

<?PHP
 function callInstagram($url)
    {
    $ch = curl_init();
    curl_setopt_array($ch, array(
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_SSL_VERIFYHOST => 2
    ));

    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
    }

    $tag = 'sweden';
    $client_id = "XXXX";
    $url = 'https://api.instagram.com/v1/tags/'.$tag.'/media/recent?client_id='.$client_id;

    $inst_stream = callInstagram($url);
    $results = json_decode($inst_stream, true);

    //Now parse through the $results array to display your results... 
    foreach($results['data'] as $item){
        $image_link = $item['images']['thumbnail']['url'];
        $Profile_name = $item['user']['username'];
        echo '<div style="display:block;float:left;">'.$Profile_name.' <br> <img src="'.$image_link.'" /></div>';
    }

With this code I get 20 of the images with tag sweden.

I need to know how I can get the min_tag_id and max_tag_id for this tag so I can make a something like pagination.

So can you give me any advice how can I get the ID of the last post/image displayed ?

Thanks in advance!

Adrian Cid Almaguer
  • 7,815
  • 13
  • 41
  • 63
Venelin
  • 2,905
  • 7
  • 53
  • 117

2 Answers2

1

From the instagram docs:

PAGINATION

Sometimes you just can't get enough. For this reason, we've provided a convenient way to access more data in any request for sequential data. Simply call the url in the next_url parameter and we'll respond with the next set of data.

{
    ...
    "pagination": {
        "next_url": "https://api.instagram.com/v1/tags/puppy/media/recent?access_token=fb2e77d.47a0479900504cb3ab4a1f626d174d2d&max_id=13872296",
        "next_max_id": "13872296"
    }
}
On views where pagination is present, we also support the "count" parameter. Simply set this to the number of items you'd like to receive. Note that the default values should be fine for most applications - but if you decide to increase this number there is a maximum value defined on each endpoint.

https://instagram.com/developer/endpoints/

dudeman
  • 503
  • 3
  • 11
1

Instagram's API returns a "pagination" key with the "next_url" and "next_max_id" nodes. Modify your code so that if $result['pagination']['next_url'] != '', the loop continues.

Documentation here: https://instagram.com/developer/endpoints/

Adrian Cid Almaguer
  • 7,815
  • 13
  • 41
  • 63
smekosh
  • 81
  • 3