Pokaż zdjęcia z Instagram według Hashtagu

Taki temat mi się ostatnio nawinął: „Pokaż zdjęcia z Intagram’a, które mają odpowiedni hashtag”…

Szukałem kilka dni rozwiązań, ale poza zawiłymi skryptami, opartymi na Instagram API nie udało się nic znaleźć. Dopiero na Stack Overflow znalazłem dość proste rozwiązanie oparte na darmowym API, dostępnym bez logowania czy autoryzacji. Adres, który trzeba wywołać to:

https://www.instagram.com/explore/tags/twoj_tag/?__a=1

Zwracany jest kod JSON, który prezentuje pierwsze 16 wyników, a także informację czy istnieje kolejna strona z wynikami.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
    "tag":
    {
        "name": "twoj_tag",
        "content_advisory": null,
        "media":
        {
            "nodes": [],
            "count": 0,
            "page_info":
            {
                "has_next_page": false,
                "end_cursor": null
            }
        },
        "top_posts":
        {
            "nodes": []
        }
    }
}

Powyższy kod zwraca pusty wynik, ale łatwo zauważyć kilka cennych informacji. Wartość „media” zwraca dane zdjęć (nodes), łączną ilość, oraz informację czy istnieje następne strona i jakie jest jej id (end_cursor). Jeżeli następna strona istnieje, to należy ją wywołać adresem:

https://www.instagram.com/explore/tags/twoj_tag/?__a=1?max_id= >> end_cursor << (np.: https://www.instagram.com/explore/tags/wosp/?__a=1&max_id=J0HWajudwAAAF0HWaEprQAAAFiYA)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$baseUrl = 'https://www.instagram.com/explore/tags/wgdyni/?__a=1';
$url = $baseUrl;
$limit = 100;
$i = 1;
while(1)
{
    $json = json_decode(file_get_contents($url));
    $nodes = $json->tag->media->nodes;
    foreach ($nodes as $nID => $image)
    {
        echo('<p> ' . $i . ' <img src="' . $image->thumbnail_src . '"></p>');
        $i++;
        if ($i > $limit) exit;
    }
    if(!$json->tag->media->page_info->has_next_page) break;
    $url = $baseUrl.'&max_id='.$json->tag->media->page_info->end_cursor;
}

Prosty skrypt, którzy przedstawia maksymalnie 100 zdjęć na hashtag ‚wgdyni’. W pętli pobierane są dane z adresu $url. Za każdym razem adres jest modyfilkowany o parametr max_id=”. Jeżeli ‚has_next_page’ wynosi false, to pętla jest zatrzymywana. Ilość pobieranych zdjęć do pokazania ustalona jest w zmiennej $limit. Jeżeli indeks pętli $i jest większy od $limit, to następuje przerwanie ‚exit’.

Warto przejrzeć całe drzewo JSON z wynikiem. Można z niego odczytać m.in. takie informacje jak ilość komentarzy, lajków, opis zdjęcia czy jego rozmiar.

Zobacz przykład

Dodaj komentarz

Privacy Preference Center

Treść banner z cookies

Podczas Twojej wizyty na naszej stronie internetowej, automatycznie zbierane są dane dotyczące Twojej wizyty, np. Twój adres IP, nazwa domeny, typ przeglądarki, typ systemu operacyjnego, itp. Dane te zbierane są za pośrednictwem oprogramowania analitycznego Google Analytics.

"Cookies" to pliki tekstowe przechowywane w urządzeniach użytkowników, przeznaczone do przeglądania stron internetowych.
"Cookies" używane są w celu personalizacji korzystania z przeglądarki, jak również pozwalają określać sposób korzystania użytkowników ze stron internetowych. Ciasteczka możemy wykorzystywać do obsługi programu partnerskiego. Przetrzymują one dane, dzięki którym jesteśmy w stanie zidentyfikować partnera. Dane osobowe gromadzone przy użyciu plików „cookies” mogą być zbierane wyłącznie w celu wykonywania określonych funkcji i aktywności (np. zakup usługi związany z wypełnieniem tych danych). Dane osobowe są zaszyfrowane w sposób uniemożliwiający dostęp do nich osobom nieuprawnionym. Rozróżniamy "cookies" sesyjne (tymczasowe) oraz stałe. "Cookies" sesyjne przechowywane są na urządzeniu użytkownika do momentu wylogowania ze strony internetowej lub jej wyłączenia. „Cookies" stałe przechowywane są przez zdefiniowany czas. Użytkownik może dokonać właściwej konfiguracji przeglądarki, aby zablokować automatyczne akceptowanie plików "cookies" lub uzyskać każdorazową informację o przesłaniu takiego pliku na urządzenie użytkownika. Informacje o możliwych konfiguracjach „cookies” dostępne są w ustawieniach przeglądarki. Wprowadzenie ograniczeń dotyczących stosowania plików „cookies” może wpłynąć na prawidłowe użytkowanie strony internetowej (np. brak możliwości zalogowania się).

google analitycs