Jak získat Facebook Page Access Token, který nikdy neexpiruje?

Potřebujete na webu zobrazovat příspěvky z facebookové stránky? Tak to se neobejdete bez bezpečnostního access tokenu. Cesta k jeho získání není triviální, a proto jsem připravil nejen pro náš tým Beneš & Michl návod.

Jestli integrujete do webu i Instagram, tak jsem nedávno sepsal krátkého Průvodce novým Instagram Basic Display API.

Na konci návodu získáte Page Access Token, který nikdy neexpiruje. Nemusíte se tak starat o jeho obnovování.

Příklad facebookových příspěvků z webu https://www.cts-tradeit.cz/kariera/

Než začnete

Ujistěte se, že máte dostatečná práva u stránky, kterou budete napojovat. Pokud ne, požádejte klienta o přidělení práv. Pozor si dejte na to, aby vám v budoucnu někdo práva neodebral. Zanikne tak i váš token.

Obecně se mi tento princip zdá dost nešťastný. Jestli máte lepší řešení, podělte se s ním prosím v komentářích.

Vytvoření aplikace

Vytvořte si novou aplikaci na stránce https://developers.facebook.com/apps/.

Výběr druhu aplikce

Vyplňte libovolné jméno aplikace.

Základní údaje o aplikaci

Získejte User Token

Pro získání finálního tokenu potřebujete vytvořit User Token. S tím vám pomůže Graph API Explorer na adrese https://developers.facebook.com/tools/explorer/

Vyberete vytvořenou aplikaci z předchozího kroku, zvolte “Get user Access Token” a potvrďte přístup:

Právě jste získali první User Token. Zatím neumí pracovat se stránkou na Facebooku. Musíte tedy upravit požadovaná práva a připojit stránku, ke které bude mít token přístup.

Vyberte znázorněná práva a požádejte o nový token. Vyskočí okno s volbou stránky, se kterou chcete aplikaci spojit.

Získejte Long-lived User Access Token

Právě se vám podařilo prolinkovat Facebook aplikaci a Facebook stránku. Zároveň jste získali nový User Access Token. Ten už umí servírovat data z Facebookové stránky. Jenže jeho platnost je jenom 1 hodina. Potřebujete z něj tedy udělat “Long-lived User Access Token”, který bude mít platnost 2 měsíce.

Proč potřebujete Long-live variantu? Protože short-lived User access token umí vytvořit jen Page access token, který bude validní také jen 1 hodinu. Naopak long-lived User access token, umí vytvořit Page access token, který nikdy neexpiruje. A tam celou dobu míříte ;)

Zkopírujte získaný Access Token

Přejděte na Access Token Debugger na stránce https://developers.facebook.com/tools/debug/accesstoken/, vložte Access Token a stiskněte Debug.

Vidíte, že token má platnost 1 hodinu. Token prodloužíme na variantu “Long-lived User Access Token” stisknutím tlačítka “Extend Access Token”

Dostanete nový token s platnístí 2 měsíce. Stisknutím na “Debug” si to ověříte. Tento token si zkopírujte, budete ho potřebovat v dalším kroku.

Získejte Page Access Token

Zjistěte si Page ID, které najdete v sekci About u vaší stránky.

Vraťe se zpátky na Graph API Explorer https://developers.facebook.com/tools/explorer/

  • Upravte adresu API na {page-id}?fields=access_token
    {page-id} nahraďte ID stránky.
  • Vložte token z předchozího kroku.
  • Potvrďte tlačítkem Submit.

Výstupem je, slibuji, už poslední token a to přesně Long-lived Page access token, který nikdy neexpiruje. To je váš acces token, který použijete na svém webu.

Ověřit si dobu expirace můžete znovu pomocí Access Token Debugger na adrese https://developers.facebook.com/tools/debug/accesstoken/

Nikdy neříkej nikdy

V dokumentaci se ve volném překladu totiž píše:

Všechny tokeny se za určitých okolností mohou stát neplatnými dříve než vyprší jejich platnost (včetně varianty nikdy). Při změně hesla, pokud uživatel, který požádal o token, již nemá roli v aplikaci nebo na stránce, nebo když byl zjištěn problém se zabezpečením.

Navíc počítejte s varaintou, že Facebook API je hodně živý organismus a vše může být příští měsíc úplně jinak.

Photo by Tim Bennett on Unsplash

Lead developer | Beneš & Michl | Czech Republic

Lead developer | Beneš & Michl | Czech Republic