Jak získat Instagram Token pro zobrazení obrázků z feedu na webu?

Kvůli jednoduchosti implementace jsou používal javascriptovou knihovnu, která natahovala fotky z feedu na Instagramu i bez nutnosti autorizačních tokenů. Tomu je nyní konec, přístupy jsou blokovány a nezbývá než se přesunout k Instagram Graph API.

Na webech s Drupalem i bez něj jsem používal povedenou knihovnu jquery.instagramFeed, případně její podobu nevyžadující jQuery. Implementace byla snadná pro vývojáře, a ještě jednodušší pro klienta, kterému web stavíte. Jediné, co musel dodat, byl název instagramového účtu.

Bohužel, kvůli změnám na Instagramu je s tím nyní konec. Pro mě to znamená opravy hned několika webů a obtěžování klientů s tím, aby dodali potřebné autorizační tokeny, případně přístupy k jejich účtům na Facebooku a Instagramu, abych mohl vytvořit potřebné.

Používáte Drupal? Já jsem měl oblíbený modul Simple Instagram Feed Block. Byl založen na zmíněné javascriptové knihovně a už nefunguje. Jako rychlou alternativu zkuste modul Instagram Lite. Neobjede se ale bez onoho tokenu.

Jak získat token pro přístup k feedu na Instagramu?

Detailní návod popisuje příručka na webu Facebook for Developers. Vývojář by to měl zvládnout. Ale protože nechci po klientech jejich přístupy k Facebooku a Instagramu, potřebuji, aby si sami zvládli založit apku a autorizovat její přístup ke svému Instagramu. Ten návod je příliš technicky složitý a příliš anglický. Pokusil jsem se jej tedy zjednodušit v češtině:

Abych pravdu řekl, s požadavkem ke svým klientům končím u bodu 10 a zbylou část už řeším sám. Málokdo má klienta, který bude někde spouštět curl nebo se jinak dotazovat API.

Jasně, jsou tu možnosti jako zpřístupnění Facebookové appky vývojáři, kterého tam klient přidá jako dalšího administrátora. Jenže to vyžaduje, aby s klientem byli na Facebooku přátelé, což není vždy žádoucí. Navíc já chci, aby to klienti měli kompletně pod svou kontrolou a nebyli závislí na programátorovi.

Pozor. Nezapomeňte, že autorizační kód pro získání Instagram Tokenu má platnost omezenou na hodinu. Pokud po jeho získání v kroku 10 neprovedete zbytek postupu dostatečně rychle, budete muset u autorizační kód požádat znovu.

Škoda, že Facebook toto tak komplikuje a nenalezl za celou dobu přívětivější cestu, jak uživatelům feed z Instagramu zpřístupnit.

Tip: jednodušší možností je vytvoření iframe (pokud vám nevadí) pomocí služby Light widget. Umožňuje naklikat různé nastavení vzhledu a podle mých informací také upozorní na blížící se nutnost refreshe tokenu každé tři měsíce.

Tagy

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Komentáře k článku

návštěvník

Ahoj,
používal jsem donedávna tuhle PHP knihovnu (stačil zadat IG účet). https://github.com/postaddictme/instagram-php-scraper

Nicméně začali "lovit" IP adresy a už to taky začíná zlobit.

Návod vyzkouším :)
====================

Jinak nesnáším tahleta omezení a složitost "naklikávání" a celkový postup, vždycky bych u toho něco roztřískal.

Takhle mi přestalo fungovat načítání FB stránky (klient nechtěl klasický widget, ale chtěl to mít ve vlastní grafice) a zkoušel jsem udělat Appku, musel jsem projít šíleným procesem a pak mi to skončilo tím, že se mi někdo z FB za několik týdnů ozve, jestli mi to schváli a nikdo se nikdy neozval (zkoumal jsem to asi 1/2 dne, ten postup a další řešení).

Nemáš to taky vyzkoušené?

Profile picture for user Kcko

Chtělo by to návod upřesnit, už bod 3 je jiný než mám např. já.

Profile picture for user Kcko

Díky :) to jsem našel, pak dál se mi to rozchází. Nicméně netřeba to dále upravovat, vzhledem k složitosti a také neustálému obnovování tokenu na to kašlu.

Tuhle ideologii podporovat nechci.

PS. Systém neposílá upozornění na nové komentáře?

Profile picture for user Jan Polzer

Posílá. Pokud se komentář napíše po přihlášení. Tedy měl by. Musím po čase vyzkoušet, zda vše šlape.

Profile picture for user Kcko

Zaregistrovaný jsem a tenhle komentář mi určitě neprišel a to jsem na webu ted hodinu, asi to funguje prapodivně :-)

Profile picture for user Jan Polzer

Přesně, stejně jako Ty. Já chtěl načítat FB příspěvky ze zdi na svém Polzer.cz, ale ke schválení appky nikdy nedošlo :-)

návštěvník

Ještě jedna věc, není ten token dočasný a nemusí se to provádět pokaždé po expiraci, která je tuším hodinu nebo něco takového?

Profile picture for user Jan Polzer

Máte pravdu, do článku jsem doplnil. Získaný token je tzv. short-live a platí hodinu. Na jeho základě pak lze získat 60denní long-live token, který lze případně refreshovat a platnost mu prodlužovat o dalších 60 dní.

Profile picture for user Kcko

Tak už vím proč jsem použil tu knihovnu, proč to API a celkově věci kolem toho dělat jednoduché když je to takhle na palici a člověk má chut u toho někoho přizabít. ;-)

návštěvník

Dobrý den,

děkuji za návod, který jsem hned zkusila, bodu 9 a dál už mi to nejde :/ kontrolovala jsem několikrát zda sedí ID i správnost adresy, ale bohužel nevím, kde nastala chyba.

Profile picture for user Jan Polzer

Co vám to vrací jako odezvu? Já si všiml, že u některých účtů mých klientů, je třeba dát jako App ID nikoli ID appky z Facebooku, ale ID appky Instagramu, která se tam propojí. Nevidím v tom ale nějakou přesnou logiku, abych napsal postup kdy, proč a jak.

návštěvník

{"error_type": "OAuthException", "code": 400, "error_message": "Invalid platform app"}

Ale už mi vypršel utorizační kód, takže musím požádat o nový.

Profile picture for user Kcko

Zajímavý postup. Našel jsem až po 3h pekle (zkoušení, hledání, nadávání, zase hledání, zase nadávání ...)

Něco tak deb*ilního jako tvorbu milion tokenů, ruzných čehosi ID, tisíce potvrzení k tomu debilní nepřehledná dokumentace a časově omezené tokeny, to skoro vyznívá, že FB nechce, aby to někdo používal.

Nicméně vydal jsem se cestou vytvoření appky, následně k jejímu povolení do mého IG a hotovo.

Vygeneroval sem si long-token pod svým profilem pod tabem IG testers a funguje.

A k tomu mám dotaz k bodu 16, určitě to funguje? Jelikož mě ona URL vypíše kolik vteřin (aktuálně 59,xxx dní) zbývá do expiraci a po každém refreshi se čas ukrajuje, nikoliv prodlužuje nebo setuje opět na 60D. A k tomu jsem našel toto info:

https://developers.facebook.com/docs/instagram-basic-display-api/guides…

Takže se musí povolit a nakonfigurovat další oprávnění a to chce po člověku další věci, nad kterými zůstává rozum stát. Ok logo appky chápu, odkaz na nějaké právní podmínky??? WTF? Video záznam k čemu appka bude sloužit? A rozhodují o tom ručně v neurčitém časovém období? Tvl kde to jsme viz https://bit.ly/3ZasBox

Nechce se mi věřit, že tvůj návod se bez tohohle obejde a long-live token se přegeneruje bez toho aniž by muselo být tohle všechno splněno.

Díky za info.

Profile picture for user Jan Polzer

No jo, je to neskutečný opruz. Nedělal jsem teď nějakou chvíli žádný nový web, který by to potřeboval (kupodivu, že :))) ). Klienti a jejich weby se v klidu obejdou s lákačkou na Instagram i v jiné formě, než aktuální nejnovější fotky. Je možné, že FB to opět změnil, nicméně prodlužování toho tokenu bylo zatím vždycky v pohodě. Zavoláním té URL to vrátí nový dlouhodobý token.

Profile picture for user Kcko

Ahoj, no hele asi se to změnilo, nebo to nechápu. Schválně.
Url pro refresh long live tokenu, tj pustím tam aktuální access token https://bit.ly/3SIC2Jr

Vemu si nový, a zkusím obnovit i ten.

A je vidět jak se pořád expires ukrajuje i s tím nově pušteným tokenem, vůbec se nenastaví na 2 měsíce a když si člověk spočítá vteřiny v expires / 86400 (na dny, dostane aktuálně něco jako 59,4 dní).

Nechápu.

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Poslední komentáře
Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru