Funcionalidade do Facebook na linha de comando.
gem install facebook-cli
(pode exigir sudo)
Para interagir com a API do Facebook você deve criar e configurar um aplicativo do Facebook para seu uso pessoal. Siga estas instruções cuidadosamente:
Acesse https://developers.facebook.com/apps e crie um novo aplicativo (captura de tela)
Configure um novo produto "Login do Facebook"
Não se preocupe em escolher uma plataforma. Em vez disso, clique em “Configurações” em “Login do Facebook” na barra lateral
Em "URIs de redirecionamento OAuth válidos", adicione: https://localhost:3333/
(isso é necessário para receber o código de autenticação durante a autenticação)
Clique em "Salvar alterações"
Vá para "App Review" e torne seu aplicativo público
Vá em "Configurações" > "Básico"
Em "Segredo do aplicativo", clique em "Mostrar" para revelar o segredo do seu aplicativo
Abra um terminal e salve seu App ID e App Secret executando: (captura de tela)
facebook-cli config --appid=<app-id> --appsecret=<app-secret>
Depois que o aplicativo do Facebook estiver configurado, você deverá autorizá-lo a acessar o gráfico social em seu nome:
Em um terminal, execute: facebook-cli login
(captura de tela)
(Se estiver autenticando em uma máquina remota ou usando uma porta diferente para receber o código de autenticação: facebook-cli login --host <hostname-or-ip> --port <port>
)
Abra o URL fornecido em um navegador da web e faça login na sua conta do Facebook, se solicitado
Clique em "Continuar" para aprovar as permissões (captura de tela)
Selecione o escopo do seu público para qualquer postagem que você publicar usando este aplicativo (captura de tela) (leia mais)
Clique em "Ok" para continuar
Se você estiver usando o Firefox e receber um erro SEC_ERROR_REUSED_ISSUER_AND_SERIAL
, basta copiar o URL e executar curl -k <url>
em um terminal
Feche a guia do navegador (captura de tela)
A execução de facebook-cli
ou facebook-cli help
mostra a lista de comandos disponíveis:
COMMANDS api - Make a direct Facebook API request config - Save your Facebook API credentials feed - List posts on your timeline help - Shows a list of commands or help for one command likes - List pages you have 'Liked' links - Some useful URLs login - Request Facebook permissions and receive an API access token logout - Deauthorize your access token me - Show your profile information photos - List photos you have uploaded photosof - List photos you are tagged in videos - List videos you have uploaded videosof - List videos you are tagged in
Execute facebook-cli help <command>
para obter mais detalhes sobre cada comando.
Use um renderizador Markdown para converter facilmente a saída em um documento HTML. Por exemplo, usando Pandoc:
facebook-cli likes | pandoc -s -f markdown_github > likes.html
Veja: exemplo
Amigos do Facebook - Crie uma página que permite clicar nas fotos do perfil dos seus amigos para acessar a linha do tempo deles
Navegador do Facebook - Crie um índice pesquisável de todas as páginas do Facebook que você segue
Protetor de tela que imprime os títulos de todas as suas páginas 'Curtidas' do Facebook, feitas usando a saída de facebook-cli likes | awk 'NR % 3 == 1' | perl -p -e "s/n/ - /"
como a entrada de texto para o protetor de tela do Phosphor
O Facebook removeu uma grande parte de sua API Graph a partir da versão 2.0. Niraj Shah fez um trabalho fantástico documentando os cortes e suas implicações nestas postagens do blog:
API do Facebook: API Graph v2.4 lançada, remove grupos, notificações e permissões de streaming
Facebook anuncia Graph API v2.3, mais descontinuações
API do Facebook: conseguindo amigos usando Graph API 2.0 e PHP SDK 4.0.x
Um artigo publicado em outubro de 2012 pelo desenvolvedor do Facebook, Henry Zhang, fornece uma visão sobre o raciocínio:
Postar no mural de amigos por meio da API gera altos níveis de feedback negativo do usuário, incluindo "Ocultar" e "Marcar como spam", por isso estamos removendo isso da API. Se você deseja permitir que as pessoas postem na linha do tempo de seus amigos a partir do seu app, você pode invocar a caixa de diálogo de feed.
Mudanças mais recentes descritas no portal de desenvolvedores do Facebook cobrem outras descontinuações massivas decretadas em 2018, que eliminaram a capacidade do Facebook-cli de acessar eventos passados e futuros, publicar conteúdo e recuperar nomes de amigos que podem ser marcados, como ainda era possível com a restrição anterior de longa data. As funções disponíveis do facebook-cli foram removidas para refletir as mudanças mais recentes.
A funcionalidade removida torna impossível construir uma interface completa para o Facebook apenas por meio da API Graph.
Se você expandir a funcionalidade do facebook-cli de alguma forma, abra uma solicitação pull.
Clone este repositório e use o Bundler para instalar dependências Ruby:
gem install bundler bundle install
Agora você deve conseguir executar o facebook-cli no diretório bin
:
bundle exec bin/facebook-cli
facebook-cli depende da biblioteca Koala para fazer interface com a API Graph do Facebook e GLI para analisar argumentos de linha de comando.
É aconselhável usar um gerenciador de ambiente Ruby como rbenv ou rvm para evitar conflitos de ambiente entre projetos.
Se você quiser contribuir, dê uma breve olhada no guia.
Aplicações:
vhpoet/facebook-cli (Facebook CLI escrito em NodeJS)
fb-messenger-cli (Facebook Messenger para o terminal)
Caprine (GUI autônoma do Facebook Messenger)
Messenger for Desktop (GUI independente do Facebook Messenger - atualmente sem manutenção)
Bibliotecas:
Coala (Rubi)
facebook-node-sdk (JavaScript)
CEI