APIs de redes sociais: o portal da Internet para o mundo real
Publicados: 2022-03-11As APIs de redes sociais percorreram um longo caminho desde que o Google lançou a primeira versão de sua API do YouTube em maio de 2008 e o Facebook lançou a primeira versão da Graph API em abril de 2010. Hoje, essas APIs oferecem a oportunidade de consultar plataformas de redes sociais para postagens , usuários, canais e dados demográficos. Eles ainda permitem que você crie seu próprio serviço ou descubra mais sobre sua base de usuários.
Neste artigo, examinaremos as maneiras pelas quais podemos utilizar algumas das APIs de redes sociais populares:
- Facebook (API de gráficos e marketing)
- YouTube
Também discutiremos suas limitações e exploraremos algumas das ferramentas úteis disponíveis para uso com essas APIs. Mais adiante neste artigo, também veremos como integrar essas APIs em qualquer aplicação Rails.
Vou me concentrar em uma API de rede social por vez e explicar suas capacidades, limitações e ferramentas disponíveis. Haverá uma matriz com as diferentes APIs e suas propriedades para melhor comparação posteriormente neste artigo.
Para usar as APIs, primeiro você precisará configurar um aplicativo que crie consultas em nome de seu aplicativo com solicitações baseadas em OAuth. Os usuários serão autenticados em seu aplicativo e você poderá acessar seus dados com o token de acesso de usuário resultante.
o Facebook
O agora desatualizado FQL (Facebook Query Language) costumava ser uma linguagem de consulta semelhante a SQL que poderia ser usada para acessar todos os dados do Facebook.
O Facebook lançou a primeira versão de sua Graph API em abril de 2010. A versão mais recente no momento da redação deste artigo é a 2.6, que foi introduzida em 12 de abril de 2016. É uma API baseada em HTTP de baixo nível que pode ser usada para consultar dados, criar postagens e até criar campanhas publicitárias automatizadas.
Ferramentas
O Graph API Explorer é a ferramenta mais usada ao trabalhar com a API do Facebook. Ele permite que você execute consultas da Graph API no navegador e examine os resultados: você pode usar um dos tokens de acesso do seu aplicativo ou criar um dinamicamente com escopos selecionados.
Capacidades
A Graph API é uma API baseada em REST que permite criar, atualizar e excluir objetos por solicitação HTTP em determinados nós.
Token de acesso
Para executar consultas na Graph API, você precisa de um token de acesso que é obtido assim que um usuário autoriza com êxito em seu aplicativo. O token de acesso deve ser armazenado pelo seu aplicativo.
Escopos
Os escopos determinam quais ações podem ser executadas em nome de um usuário. O aplicativo solicita determinados escopos quando um usuário autoriza em um aplicativo. O escopo publish_actions
, por exemplo, permite que um aplicativo publique postagens em nome de um usuário. O escopo de email permite que o aplicativo leia o email do usuário. Uma visão geral completa de todos os escopos está listada na documentação oficial.
Certos escopos, como publish_actions
ou ads_management
exigem uma revisão do Facebook antes do lançamento do aplicativo.
Exemplos
Para demonstrar como a Graph API funciona, mostrarei como ler, criar, atualizar e excluir postagens com a API.
Para obter seus próprios posts, você pode executar a consulta GET /me/posts
. O resultado será uma string JSON com uma lista de postagens, incluindo sua mensagem, created_time e id. Você pode usar o parâmetro pretty
ou um formatador JSON para tornar a resposta menos confusa.
Para obter mais dados sobre suas postagens, você pode estender a consulta com campos como parâmetros de consulta. Por exemplo, a consulta me/posts?fields=reactions, picture
fornecerá a imagem e as reações do post.
Para criar um post, você pode simplesmente enviar uma ação POST contra o feed de borda, por exemplo, me/feed
, com parâmetros como message: hello world
. A Graph API retornará um objeto JSON com o ID da postagem criada. Você pode então ver a postagem no endereço http://facebook.com/[post_id]
.
Para atualizar um post, você pode enviar uma solicitação POST para o nó do post com os campos a serem atualizados como parâmetros; por exemplo, /[post_id]
e parâmetros como Message: lorem ipsum
. Um indicador de sucesso com valor true ou false será retornado.
Para excluir uma postagem, você pode simplesmente fazer uma solicitação DELETE para o nó com o ID da postagem (por exemplo, /[post_id]
). O valor de retorno será um objeto JSON com um valor de sucesso true ou false.
Uma visão geral completa de todos os nós e ações está disponível na Referência da Graph API.
API de marketing
A API de marketing merece menção especial porque é uma ferramenta poderosa para gerenciar anúncios do Facebook e obter insights de anúncios por meio do seu aplicativo.
Funciona da mesma forma que outros métodos da Graph API. No entanto, você precisa do escopo ads_management
para obter acesso aos anúncios do usuário. O Facebook também precisa revisar seu aplicativo antes de publicá-lo.
Teste
Depois de criar seu aplicativo, ele estará no modo de desenvolvimento e automaticamente visível no painel do aplicativo (ou seja, https://developers.facebook.com/apps/
).
No modo de desenvolvimento, apenas administradores, desenvolvedores e testadores têm acesso ao seu aplicativo. Você pode adicionar testadores e administradores na seção de funções do painel do seu aplicativo.
Processo de revisão
Ao adicionar determinadas permissões, o Facebook precisa revisar seu aplicativo antes de publicá-lo. O processo de revisão é definido por este conjunto de diretrizes.
Para enviar determinados itens para revisão, basta adicioná-los na seção Revisão do aplicativo do painel do seu aplicativo. O Facebook o guiará pelo processo de revisão e você será alertado assim que seu aplicativo for aprovado.
Limitações e soluções alternativas
Limites de taxa
Um aplicativo pode fazer 200 chamadas por hora por usuário no total. Se você atingir esse limite, suas chamadas de API resultarão em erro.
Procurando postagens no Facebook
O Facebook restringe a pesquisa de postagens e tags no Facebook por meio da Graph API e FQL. No entanto, você pode usar a API de pesquisa do Google para pesquisar postagens públicas do Facebook e, em seguida, usar o post-id na URL para recuperar mais informações sobre postagens específicas por meio da Graph API.
Obtendo dados de público-alvo personalizados
O Audience Insights no Facebook é uma poderosa ferramenta de pesquisa para saber mais sobre um determinado público com base em interesses, dados demográficos ou outros atributos (por exemplo, uma coleção de endereços de e-mail).
No entanto, não encontrei uma maneira de criar automaticamente insights de público por meio da API de anúncios. Deixe-nos saber nos comentários se você tem alguma ideia criativa ou sugestão para isso.
A API do Instagram foi lançada pela primeira vez em abril de 2014 e permite criar aplicativos que analisam as postagens do usuário e ajudam os usuários a gerenciar suas próprias postagens.
Ferramentas
Como o console de API do Instagram está obsoleto no momento deste artigo, recomendo usar a Apigee para fins de teste em seu navegador.
Capacidades
A API do Instagram é uma API baseada em REST. Todos os seus endpoints estão descritos em sua documentação oficial.
Token de acesso
Para executar consultas na API do Instagram, você precisa de um token de acesso que é obtido assim que um usuário autoriza em seu aplicativo. Para que um usuário receba um token de acesso, ele deve ser direcionado ao URL de autorização do seu aplicativo. O servidor redirecionará o usuário depois de autorizar seu aplicativo e você poderá ler o token.
Escopos
Seu aplicativo pode solicitar permissões diferentes. Por exemplo, “básico” limita você a ler as informações e a mídia do perfil de um usuário. “public_content” permite que você leia qualquer perfil público e mídia em nome de um usuário.
Exemplos
Para demonstrar como funciona a API do Instagram, vou passar por alguns exemplos baseados no endpoint de mídia https://api.instagram.com/v1/media/popular
.
Esse endpoint retorna a mídia atualmente popular do Instagram se passar um token de acesso como parâmetro. O resultado será um array JSON de posts contendo, para cada um, seu ID de mídia, um link para sua imagem, curtidas, comentários, o usuário que postou e alguns outros atributos.
Você pode usar a apigee para brincar e descobrir mais sobre os endpoints da API e seus parâmetros.
Teste
Todo novo aplicativo criado na plataforma do Instagram é iniciado no modo sandbox. Este é um ambiente totalmente funcional que permite testar endpoints de API disponíveis publicamente antes de enviar seu aplicativo para revisão.
Para testar seu aplicativo, basta criar uma versão de teste e executar todas as consultas por meio dessa versão, em vez da versão ativa que passou pela revisão.
Processo de revisão
Os aplicativos no modo sandbox podem usar qualquer endpoint de API, mas estão restritos a um número limitado de usuários e mídia. É um ótimo mecanismo para desenvolver e testar um aplicativo.
Para entrar ao vivo e acessar todo o conteúdo do Instagram, você precisará enviar sua inscrição para análise. Depois de revisado, você só poderá solicitar os escopos para os usuários para os quais seu aplicativo foi aprovado.
Limitações e soluções alternativas
Análise Demográfica
No momento da redação deste artigo, não há como obter informações sobre a idade, sexo ou interesses de um usuário público, porque o Instagram não fornece essas informações.
Para obter dados demográficos sobre seguidores ou uma lista de usuários do Instagram, você precisaria iterar sobre todos eles e tentar determinar sua idade e sexo ou interesses com base em seus seguidores ou nas informações fornecidas em sua biografia.
Uma boa solução de big data para esse problema pode ser um serviço valioso para algumas empresas.
Limites de taxa
Todos os limites de taxa na plataforma do Instagram são controlados por token de acesso em uma janela deslizante de 1 hora. Os aplicativos ao vivo têm limites de taxa mais altos do que os aplicativos no modo Sandbox. Atualmente, o limite de taxa global para um aplicativo ativo é de 5.000 chamadas por hora.
A API do Twitter foi lançada pela primeira vez em setembro de 2006. É uma API REST pública que fornece acesso de leitura e gravação aos dados do Twitter. A autenticação é realizada usando OAuth. As respostas estão no formato JSON.
Ferramentas
O Twitter tem uma ferramenta de console de API desenvolvida pela apigee que pode ser usada para testar solicitações no navegador.
Capacidades
A API REST permite obter tweets, seguidores e pessoas seguidas de um usuário. Você também pode pesquisar hashtags em outros tweets.
Token de acesso
O Twitter permite que você crie aplicativos nos quais os usuários podem se autenticar em troca de um token de acesso. O modelo de autenticação é OAuth.
Escopos
Existem apenas duas permissões que devem ser definidas na página de configuração do aplicativo: somente leitura e leitura e gravação. O último permite criar tweets e realizar outras ações de postagem em nome de um usuário.
Exemplos
Para demonstrar o uso da API do Twitter, recuperarei os tweets do usuário autorizado. O resultado é uma matriz JSON com as imagens, favoritos, retuítes, urls, data de criação e outros atributos do tweet. Use a Apigee para brincar e descobrir mais sobre os endpoints da API e seus parâmetros.
Processo de teste e revisão
Atualmente, não há processo de revisão ou modo de teste disponível para a API do Twitter.
Limitações e soluções alternativas
Análise Demográfica
Atualmente, não há uma maneira fácil de obter dados demográficos dos seguidores de alguém no Twitter. A abordagem de força bruta seria navegar por cada seguidor e tentar obter os dados por meio de sua biografia e contas de redes sociais vinculadas.

Você pode então fazer suposições adicionais com base nos dados coletados do seguidor por meio da análise de dados. Outra maneira de obter mais informações é por meio da plataforma de API corporativa paga do Twitter GNIP. Entre outras coisas, permite criar públicos e obter informações sobre eles por meio da API. A API está atualmente em BETA.
Limites de taxa
O Twitter tem limites de taxa por usuário e por 15 minutos. Se seu aplicativo tiver vários tokens, você pode simplesmente alternar os tokens para operações públicas para evitar atingir o limite.
YouTube
A API de dados do YouTube foi introduzida pela primeira vez em janeiro de 2013. Ela permite adicionar recursos do YouTube ao seu aplicativo, pesquisar conteúdo e analisar os dados demográficos de um canal do YouTube. É uma API REST baseada em token OAuth que retorna respostas JSON.
Ferramentas
O API Explorer permite testar solicitações não autorizadas e não autorizadas. Você pode executar solicitações do seu navegador nos endpoints fornecidos.
Capacidades
Entre outras coisas, você pode trabalhar com atividades, chats, transmissões ao vivo, playlists, canais, vídeos e inscrições. A maioria dos endpoints exige que você autorize com uma conta do YouTube.
Token de acesso
A API de dados do YouTube é compatível com o protocolo OAuth 2.0 para autorizar o acesso a dados privados de usuários. Depois que um usuário for autorizado em seu aplicativo, ele será redirecionado para seu aplicativo, onde o token de acesso deve ser salvo.
Para usar a autorização OAuth 2.0, primeiro você precisa obter credenciais de autorização no console do desenvolvedor do Google.
Escopos
Atualmente, a API de dados do YouTube é compatível com os seguintes escopos:
- Force SSL - Gerencie sua conta do youtube, mas apenas por meio de uma conexão SSL.
- Padrão - Gerencie sua conta do YouTube. Esse escopo é funcionalmente idêntico ao escopo youtube.force-ssl, mas não requer uma conexão SSL.
- Somente leitura - Visualize sua conta do YouTube.
- Upload - Faça upload de vídeos do YouTube e gerencie seus vídeos do YouTube.
- Auditoria de Canal do Parceiro - Recupere informações que as Redes Multicanal usam como critério para aceitar ou rejeitar um canal em sua rede.
Exemplos
Como exemplo de uso da API de dados do YouTube, as seguintes consultas solicitam vídeos com “codificação” no título e na descrição:
https://www.googleapis.com/youtube/v3/search?part=snippet&q=coding&key={YOUR_API_KEY}
O resultado é um objeto JSON contendo o título, descrição, videoId e channelId. Você pode usar o último para saber mais sobre o canal.
O parâmetro part
é necessário para qualquer solicitação de API que retorne um determinado recurso. O parâmetro identifica as propriedades do recurso que devem ser incluídas em uma resposta da API. Por exemplo, um recurso de vídeo tem as seguintes partes: snippet, contentDetails, fileDetails, player, processingDetails, recordingDetails, estatísticas, status, sugestões, topicDetails.
Todos os outros parâmetros, exceto a chave de API, diferem de chamada para chamada. Leia mais sobre isso no guia de referência da API.
A API do Pinterest foi lançada inicialmente em abril de 2015. É uma API RESTful que fornece acesso aos dados do Pinterest de um usuário, como suas pastas, pins, seguidores e muito mais. A API do Pinterest usa OAuth e permite permissões de leitura e gravação ao interagir com o conteúdo de um usuário.
Ferramentas
Como outros, o Pinterest fornece um API Explorer para testar seus endpoints e executar consultas neles. Você pode dar uma olhada em todas as suas ferramentas aqui.
Capacidades
A API REST do Pinterest permite criar pins, quadros e consultar dados do Pinterest com OAuth.
Token de acesso
O Pinterest usa o OAuth 2.0 para autenticar solicitações entre seu aplicativo e seus usuários. Todas as solicitações devem ser feitas por HTTPS.
Escopos
Os escopos determinam o que um aplicativo pode fazer em nome de um usuário. O Pinterest usa os seguintes escopos:
-
none
(deve conhecer o identificador): Use o método GET no perfil de um usuário, nos detalhes do quadro e do Pin e nos Pins em um quadro. -
read_public
: Use o método GET nos Pins, pastas e curtidas de um usuário. -
write_public
: Use os métodos PATCH, POST e DELETE nos Pins e quadros de um usuário. -
read_relationships
: Use o método GET nos seguidores e seguidores de um usuário (em quadros, usuários e interesses). -
write_relationships
: Use os métodos PATCH, POST e DELETE nos seguidores e seguidores de um usuário (em quadros, usuários e interesses).
Exemplos
Para demonstrar o uso da API do Pinterest, vou demonstrar como ler os pins mais recentes do usuário:
https://api.pinterest.com/v1/me/pins/?access_token={your_token}&fields=id,link,note,url,counts,board,created_at
retornará os pins de um usuário com seu id, link, note, URL, curtidas e repins.
Processo de teste e revisão
Os aplicativos estão inicialmente no modo de desenvolvimento e devem ser enviados para revisão antes de serem lançados no modo de produção.
Limitações e soluções alternativas
Análise Demográfica
Não há uma maneira comum de obter dados demográficos de um quadro. No entanto, você pode tentar obter os seguidores de um fórum e informações sobre eles em sua biografia e links para outras contas de redes sociais. Uma solução de big data sobre as conexões comuns do usuário também seria uma possibilidade.
Pesquisar pinos
Atualmente, não há como pesquisar pins com determinadas tags ou palavras-chave por meio da API. Você pode contornar essa limitação usando a API de pesquisa personalizada do Google para pesquisar resultados apenas em pins do Pinterest e coletar o ID do pin por meio do URL. O ID pode ser usado para obter informações sobre o pin por meio da API.
Limites de taxa
Cada aplicativo (com um ID de aplicativo exclusivo) tem permissão para 1.000 chamadas por endpoint por hora para cada token de usuário exclusivo.
Cada resposta da API retorna um cabeçalho que fornece uma atualização sobre os limites de taxa. X-Ratelimit-Limit é o limite de taxa para essa solicitação específica e X-Ratelimit-Remaining é o número de solicitações restantes na janela de 60 minutos.
Se você exceder o limite de taxa para um determinado endpoint, receberá um código de erro 429 “Too many requests” (Excesso de solicitações).
Comparação de APIs de redes sociais
Versão | OAuth | Formato | Demografia | |
---|---|---|---|---|
o Facebook | v2.6 Lançamento inicial: abril de 2010 | OAuth 2 | Solicitações REST com respostas JSON | Compatível |
v1 Lançamento inicial: abril de 2014 | OAuth 2 | Solicitações REST com respostas JSON | Não suportado | |
v1.1 Lançamento inicial: setembro de 2006 | OAuth 1 | Solicitações REST com respostas JSON | Compatível apenas com GNIP | |
YouTube | v3 Lançamento inicial: janeiro de 2013 | OAuth 2 | Solicitações REST com respostas JSON | Compatível |
v1 Lançamento inicial: abril de 2015 | OAuth 2 | Solicitações REST com respostas JSON | Não suportado |
Aplicativo de demonstração com o Devise
Integrar essas APIs em seus aplicativos novos ou existentes, graças a uma infinidade de pacotes e bibliotecas de APIs de redes sociais, é mais fácil do que nunca. A maioria das plataformas e estruturas modernas possui bibliotecas de terceiros testadas pelo tempo que unificam até mesmo o aspecto de autenticação de todas essas APIs em uma única biblioteca com arquitetura de plug-in organizada.
Para este artigo, vamos dar uma olhada em como Devise, uma gem Ruby, faz isso de forma tão elegante para aplicações Rails. O Devise é uma biblioteca de autenticação flexível baseada no Warden que implementa autenticação, registro, login e armazenamento de dados para vários provedores de login. Se você é mais um cara de front-end e deseja verificar algo semelhante para o AngularJS, dê uma olhada neste artigo.
O Devise, como a maioria das bibliotecas desta classe, não vem embutido com suporte para nenhuma das APIs de rede social mencionadas acima. O suporte para cada uma dessas APIs de redes sociais é fornecido por meio de gems adicionais. As seguintes gems estão disponíveis para autenticação Rails que cobrem os 5 provedores discutidos neste artigo:
gem 'omniauth-facebook' gem 'omniauth-pinterest' gem 'omniauth-twitter' gem 'omniauth-google-oauth2' gem 'omniauth-instagram'
Como eles fornecem apenas autenticação, registro, login e armazenamento para cada um desses provedores, também precisaremos obter as seguintes gems para os clientes de API reais:
gem 'twitter' # https://github.com/sferik/twitter gem 'instagram' # https://github.com/facebookarchive/instagram-ruby-gem gem 'koala' # (Facebook API) https://github.com/arsduo/koala gem 'google-api-client' # (YouTube API), https://github.com/google/google-api-ruby-client gem 'pinterest-api' # https://github.com/realadeel/pinterest-api
Omniauth e autenticação
Para que um usuário autorize seu aplicativo com seu provedor, basta fornecer um link com o seguinte caminho:
omniauth_authorize_path('user', :facebook) omniauth_authorize_path('user', :instagram) ...
Para reagir no retorno de chamada após autenticar um usuário, você pode definir um OmniauthCallbacksController com os escopos como funções como:
class AuthenticationsController < Devise::OmniauthCallbacksController def facebook if request.env["omniauth.auth"] ... end end end
Esse é o lugar para adicionar um novo modelo de autenticação com o token e os dados em seu aplicativo:
authentication = where(provider: omniauth.provider, user_id: user.id) .first_or_create do |auth| auth.user = user auth.uid = omniauth.uid auth.secret = omniauth.credentials.secret auth.token = omniauth.credentials.token ... end
Fazendo chamadas de API
Aqui está um exemplo de como usar o Koala para consultar a API do Facebook. Os demais provedores funcionam de forma mais ou menos semelhante e estão documentados no README da gem.
É assim que você obtém seus dados de usuário usando o Koala:
authentication = user.authentication_for_provider(:facebook) token = authentication.token api = Koala::Facebook::API.new(token) results = api.get_object("me")
Você pode então usar o resultado JSON retornado pela API. O código-fonte deste aplicativo de demonstração está disponível no GitHub.
Embrulhar
As APIs de redes sociais fornecem uma ferramenta poderosa para consultar o grande conjunto de dados de redes sociais e coletar big data para seu aplicativo. Você pode criar um serviço com base nessas APIs ou usá-las para aprimorar seu próprio aplicativo e insights do usuário.
Rails e as gems disponíveis facilitam a integração dessas APIs em seu aplicativo Rails e consulta as interfaces com uma camada de abstração entre seu aplicativo e a API.