Seguindo as instruções descritas na documentação de tokens de página extensível do Facebook, consegui obter um token de acesso à página que não expira.
Sugiro usar o Graph API Explorer para todas essas etapas, exceto onde indicado de outra forma.
0. Crie um aplicativo do Facebook
Se você já possui um aplicativo , pule para a etapa 1.
- Vá para Meus aplicativos .
- Clique em "+ Adicionar um novo aplicativo".
- Configure um aplicativo de site.
Você não precisa alterar suas permissões nem nada. Você só precisa de um aplicativo que não desapareça antes de concluir seu token de acesso.
1. Obter token de acesso de curta duração do usuário
- Vá para o Graph API Explorer .
- Selecione o aplicativo para o qual você deseja obter o token de acesso (no menu suspenso "Aplicativo", não no menu "Meus aplicativos").
- Clique em "Obter token"> "Obter token de acesso do usuário".
- No pop-up, na guia "Permissões estendidas", marque "manage_pages".
- Clique em "Obter acesso token".
- Conceda acesso a partir de uma conta do Facebook que tenha acesso para gerenciar a página de destino. Observe que, se esse usuário perder o acesso ao token final, o acesso sem validade provavelmente parará de funcionar.
O token que aparece no campo "Token de acesso" é o seu token de acesso de curta duração.
2. Gere token de acesso de longa duração
Seguindo estas instruções dos documentos do Facebook, faça uma solicitação GET para
https://graph.facebook.com/v2.10/oauth/access_token?grant_type=fb_exchange_token&client_id= {app_id} & client_secret = {app_secret} & fb_exchange_token = {short_lived_token}
digitando o ID e o segredo do seu aplicativo e o token de curta duração gerado na etapa anterior.
Você não pode usar o Graph API Explorer . Por alguma razão, ele fica preso a essa solicitação. Eu acho que é porque a resposta não é JSON, mas uma string de consulta. Como é uma solicitação GET, você pode simplesmente acessar o URL no seu navegador.
A resposta deve ser assim:
{"access_token": " ABC123 ", "token_type": "portador", "expires_in": 5183791}
"ABC123" será seu token de acesso de longa duração. Você pode colocá-lo no depurador do token de acesso para verificar. Em "Expira", deve ter algo como "2 meses".
3. Obter ID do usuário
Usando o token de acesso de longa duração, faça uma solicitação GET para
https://graph.facebook.com/v2.10/me?access_token= {long_lived_access_token}
O id
campo é o ID da sua conta. Você precisará dele para o próximo passo.
4. Obter token de acesso à página permanente
Faça uma solicitação GET para
https://graph.facebook.com/v2.10/ {account_id} / accounts? access_token = {long_lived_access_token}
A resposta JSON deve ter um data
campo no qual há uma matriz de itens aos quais o usuário tem acesso. Localize o item da página da qual você deseja o token de acesso permanente. O access_token
campo deve ter seu token de acesso permanente. Copie-o e teste-o no Depurador de Tokens de Acesso . Em "Expira", deve dizer "Nunca".