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í.
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/.
Vyplňte libovolné jméno aplikace.
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.