Pergunta

Estou tentando escrever um aplicativo simples que permita que um usuário conceda a permissão do meu código para escrever no fluxo do Facebook da página dela. Pelo que entendi, deve ser tão fácil quanto:

  1. Peça ao usuário que clique em um botão que inicie um pop -up que contém a página A no meu aplicativo do Facebook.
  2. Nessa página, eles clicam em algo que concede stream_publish ao meu aplicativo e atribui essa permissão à sua página.
  3. A janela fecha, agora tenho todas as informações necessárias para executar um script em Cron para empurrar as coisas para o fluxo dessa página.

Eu tenho lido o wiki há dias. Notas sobre pyfacebook estão pelo menos um ano desatualizado, e as pessoas me apontaram para o Socialauth App for Django, que parece estar igualmente desatualizado e focado em direcionar os usuários em oposição às suas páginas. Eu não posso nem fazer o número 1 lá em cima, deixe o #2 e o 3.

Se alguém pudesse me mostrar como usar o Django/Python para solicitar/receber permissão para escrever em um fluxo do Facebook, isso seria um ótimo começo.

Qualquer ajuda seria muito apreciada.

Foi útil?

Solução 2

Depois de muito mexer, parece ter resolvido todos os meus problemas no Facebookland:

  1. Acontece que ter um usuário clicar em um botão para conceder permissões é tão fácil quanto Caio Romão disse que era. Porém, na minha parte, descobri que direcioná -los para o link do aplicativo de desktop do Facebook era muito mais fácil e confiável.
  2. Usando este método de link, o Facebook permite especificar enable_profile_selector=1 que garantirá que seja gerada uma lista de páginas a partir da qual o usuário pode selecionar quais páginas (se houver) concederão essas permissões.
  3. Para este, porém, porém, Facebook está totalmente quebrado. Enquanto no #2, eles permitem que o usuário selecione uma página para conceder permissões, Eles não passam essas informações para o aplicativo por meio de um post ou nos cabeçalhos. Simplesmente não está lá. Em vez disso, você precisa fazer um truque feio com o FQL e algumas perguntas adicionais ao usuário para fazê -lo funcionar.

De qualquer maneira, eu detalhou tudo no meu blog Se alguém estiver interessado. Obrigado pela ajuda!

Outras dicas

Você já olhou minifb? Seus Página de exemplos Mostra basicamente tudo o que você precisa saber para solicitar autorização e receber uma chave de sessão. (Também o página do github para pyfacebook mostra que a biblioteca ainda está viva)

Então, para o seu cenário, você precisaria:

  1. Solicite a permissão "stream_publish". Há algumas maneiras Para fazer isso, mas eu realmente iria para o mais fácil: enviando um formulário (Observe que nunca fiz um aplicativo para o Facebook, provavelmente estou errado, assumindo que essa abordagem é a mais fácil :-)
  2. Use seu aplicativo normalmente: ligue para os métodos da API usando o user_id do usuário que autorizou seu aplicativo (você precisará armazená -lo) e, como você foi autorizado, ele não deve falhar.

Para isso, basicamente, adicione este formulário em seu modelo:

<form promptpermission="publish_stream">
<input type="submit" value="Allow Publish Stream">
</form>

Parabéns aos desenvolvedores do Facebook, a propósito. Muito boa documentação oficial.

EDITAR: Ainda não tenho permissão para comentar assim: você deve enfrentar problemas recebendo o uid, verifique essa questão e as referências.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top