Token de acesso do Facebook para páginas

115

Eu tenho uma página do Facebook da qual desejo obter algumas coisas dela. A primeira coisa são os feeds e, pelo que li, eles são públicos (não há necessidade de access_token). Mas também quero obter os eventos ... e eles não são públicos e precisam do access_token.

Não quero que o usuário faça login no Facebook ou algo parecido. Eu só quero enviar todos os dados que puder desta única página. É por isso que já descartei muitos exemplos que encontrei aqui e aquele em https://developers.facebook.com/blog/post/500/ , porque eles querem que o usuário faça o login ou exijam alguma ação do usuário, não estou interessado.

O que eu quero é que meu aplicativo do Facebook tenha autorização total e access_token para enviar os dados dessa página do Facebook que eu possuo (admin). Isso é possível? Já tentei muitas coisas, mas nada parece funcionar.

Tentei clicar aqui: https://www.facebook.com/dialog/oauth?client_id=150635421702954&redirect_uri=http://MY_URL/&scope=manage_pages&response_type=token&fields=access_token - alterar MY_URL para meu site e solicitar autorização para editar todos página que possuo. Mesmo não sendo o que eu queria eu cliquei mas não tive access_token em troca ...

bsides
fonte
Para obter eventos eu faço isso agora (o access_token expira muito): 1 - Pegue um token do Graph Explorer 2 - Cole no meu código abaixo: var authToken = 'THE_CODE_I_GOT'; var feedQuery = 'graph.facebook.com/MY_PAGE_ID/feed'; var feedURL = feedQuery +'?access_token='+ authToken +'&callback=?'; $.getJSON(feedURL,function(data){ var d = data.data; para (i = 0; i <d.length; i ++) {d [i] .mensagem? $ ("# lista"). append ('<li>' + d [i] .mensagem + '</li>'): ''; // muitas outras coisas, você entendeu}}); `
além de
1
Você pode obter um token permanente: stackoverflow.com/questions/17197970/…
Josh

Respostas:

269
  1. Vá para o Graph API Explorer
  2. Escolha seu aplicativo no menu suspenso
  3. Clique em "Obter Token de Acesso"
  4. Escolha a manage_pagespermissão (você pode precisar da user_eventspermissão também, não tenho certeza)
  5. Agora acesse a me/accountsconexão e copie o da sua páginaaccess_token
  6. Clique no id da sua página
  7. Adicione a página access_tokenaos campos GET
  8. Ligue para a conexão desejada (por exemplo PAGE_ID/events:)
ifaour
fonte
1
Ao fazer isso, posso chamar conexões em todas as minhas páginas usando um token de página de apenas uma delas. Isso não é errado? Existe uma maneira de obter um token para apenas uma página específica que não funciona nas outras páginas?
andresp de
112
Já escalei montanhas e nadei oceanos apenas em busca desta resposta. Obrigado.
IMB de
15
Este processo não funciona mais, pois o token de acesso gerado expira quando você sai por qualquer motivo.
coneybeare
1
@coneybeare, consulte este documento sobre como estender o token de acesso
ifaour
1
Eu continuo obtendo um resultado vazio. Faz diferença se for uma página de aplicativo?
Máx.
16

Veja aqui se você deseja conceder a um aplicativo do Facebook acesso permanente a uma página (mesmo quando você / o proprietário do aplicativo estiver desconectado):

http://developers.facebook.com/docs/opengraph/using-app-tokens/

"Um App Access Token não expira a menos que você atualize o segredo do aplicativo por meio de suas configurações."

Robin Layfield
fonte
6
Isso não ajuda a obter eventos para uma página restrita.
Sinan
2
Isso ainda é verdade ?!
jeromej
5

A documentação para isso é boa, senão um pouco difícil de encontrar.

API Graph do Facebook - Tokens de página

Depois de inicializar o fbgraph do nó , você pode executar:

var facebookAccountID = yourAccountIdHere 

graph
.setOptions(options)
.get(facebookAccountId + "/accounts", function(err, res) {
  console.log(res); 
});

e receber uma resposta JSON com o token que deseja obter, localizado em:

res.data[0].access_token
Anthony
fonte