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í.

Image for post
Image for post
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.

Image for post
Image for post

Vytvoření aplikace

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

Image for post
Image for post
Výběr druhu aplikce

Vyplňte libovolné jméno aplikace.

Image for post
Image for post
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:

Image for post
Image for post
Image for post
Image for post

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.

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post

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”

Image for post
Image for post

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.

Image for post
Image for post
Image for post
Image for post

Získejte Page Access Token

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

Image for post
Image for post

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.
Image for post
Image for post

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.

Image for post
Image for post

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

Image for post
Image for post

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.

Image for post
Image for post
Photo by Tim Bennett on Unsplash

Written by

Lead developer | Beneš & Michl | Czech Republic

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store