Skip to content

Instantly share code, notes, and snippets.

@theo-bittencourt
Last active December 24, 2015 20:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save theo-bittencourt/6856781 to your computer and use it in GitHub Desktop.
Save theo-bittencourt/6856781 to your computer and use it in GitHub Desktop.

Facebook Page Token – que não expira

O fluxo abaixo descreve como se deve obter um token (que não expira) para acesso à uma fanpage específica. Para tratar múltiplas fanpages de diferentes usuários, seria mais correto armazenar os tokens no db e criar um endpoint para tratar o callback de auth do FB.

O token gerado pode ser confirmado aqui: https://developers.facebook.com/tools/debug

  1. Criar um app e configurar 'Website with Facebook Login' para http://localhost:3000
  2. oauth = Koala::Facebook::OAuth.new(ENV['FB_APP_ID'], ENV['FB_APP_SECRET'],ENV['FB_CALLBACK_URL']) ENV['FB_CALLBACK_URL'] pode ser http://localhost:3000, já que estamos fazendo todo o processo manualmente. Se precisássemos pegar o token de diferentes usuários, o certo é criar um endpoint para tratar o callback
  3. Logado como admin da Page, copiar o code que irá surgir na url gerada por: oauth.url_for_oauth_code(permissions: 'read_stream')
    Repare que só pegamos a permissão read_stream, mas poderíamos pegar outras diversas.
  4. token = oauth.get_access_token({code})
  5. exchanged_token = oauth.exchange_access_token(token)
    mais em: https://developers.facebook.com/docs/facebook-login/access-tokens/#extending
  6. api = Koala::Facebook::API.new(exchanged_token)
  7. token_definitivo_que_nao_expira = api.get_page_access_token(ENV['FB_FAN_PAGE_ID'])
  8. api = Koala::Facebook::API.new(token_definitivo_que_nao_expira)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment