Como obter contagens de compartilhamento usando a API do gráfico


136

Posso obter a contagem de compartilhamentos de um URL usando o PHP SDK e a API de descanso descontinuada, mas não encontrei uma maneira de obter as contagens de compartilhamento de um URL usando a API de gráficos.

Existe alguma maneira de descobrir?


Obtenha a solução para você aqui stackoverflow.com/questions/6137414/…
— Sakata Gintoki


Post 8 de agosto de 2016 (não descontinuado) resposta: stackoverflow.com/a/39379251/4607317
— budi

Respostas:


270

1
A única linkedin não funciona (dá 403 acesso negado)
— Maxim Krizhanovsky

2
Quanto custa o limite de chamadas da API para cada solicitação?
— StErMi

8
Olá ! Obrigado por esta lista. Não consigo encontrar a documentação para o terminal da API api.facebook.com/method/links.getStats . Realmente funciona, mas eu gostaria de garantir que não faça parte de uma versão da API que será desativada em breve. Também é estranho que isso esteja disponível sem autenticação ... Você vê algo sobre isso na documentação do facebook? Não faz parte da API gráfico ...
— Żabojad

10
O link do Facebook não está mais funcionando. Use graph.facebook.com/?id=http://www.google.com
— MarkOverride

8
O @MarkOverride de uma versão ainda mais otimizada (menos largura de banda) é graph.facebook.com/?fields=share&id=http://www.google.com . O problema é que esses novos pontos de extremidade são severamente limitados por taxas e é muito difícil usá-los na produção sem encontrar esses limites. Se alguém tiver uma maneira diferente de fazê-lo, informe-nos.
— njy

200

ATUALIZAÇÃO - abril '15:

Se você deseja obter a contagem disponível no botão Curtir, use o engagementcampo no og_objectobjeto, assim:

https://graph.facebook.com/v2.2/?id=http://www.MY-LINK.com&fields=og_object{engagement}&access_token=<access_token>

Resultado:

{
  "og_object": {
    "engagement": {
      "count": 93, 
      "social_sentence": "93 people like this."
    }, 
    "id": "801998203216179"
  }, 
  "id": "http://techcrunch.com/2015/04/06/they-should-have-announced-at-420/"
}

É possível com a API do Graph, basta usar:

http://graph.facebook.com/?id=YOUR_URL

algo como:

http://graph.facebook.com/?id=http://www.google.com

Retornaria:

{
   "id": "http://www.google.com",
   "shares": 1163912
}

ATUALIZAÇÃO: enquanto o acima responderia como obter a contagem de compartilhamentos . Esse número não é igual ao que você vê no botão Curtir , pois esse número é a soma de:

  • O número de curtidas deste URL
  • O número de compartilhamentos deste URL (isso inclui copiar / colar um link para o Facebook)
  • O número de curtidas e comentários em histórias no Facebook sobre este URL
  • O número de mensagens da caixa de entrada que contêm este URL como anexo.

Portanto, é possível obter o número do botão Curtir com a API do Graph através do fqlponto final (a link_stattabela):

https://graph.facebook.com/fql?q=SELECT url, normalized_url, share_count, like_count, comment_count, total_count,commentsbox_count, comments_fbid, click_count FROM link_stat WHERE url='http://www.google.com'

total_count é o número que aparece no botão Curtir.


Não recebo a contagem de compartilhamentos para determinados objetos. Eu sei que eles deveriam ter pelo menos um compartilhamento.
— Jan Deinhard 10/08

1
@ Justo, sim, às vezes o número não está correto e é um pouco confuso. Você pode usar a tabela fql sugerida pela outra resposta, mas ainda assim ... às vezes os números também não estão corretos!
— ifaour

é possível compartilhar compartilhamentos de alguns sites?
— Aziz

@ Aziz, o que você quer dizer?
— ifaour

3
Como v2.6 doc não deixá-lo ir share_count, like_counte comment_count, ao que parece fqlea API REST ainda são as melhores opções ... Mas ambos fqle API REST deixarão de estar disponíveis depois de 07 de agosto de 2016! Alguma sugestão?
— Daniel García Baena

21

Você não deve usar a API do gráfico. Se você ligar para:

ou

ambos retornarão:

{
  "id": "http://www.apple.com",
  "shares": 1146997
}

Mas o número mostrado é a soma de :

  • número de curtidas deste URL
  • número de compartilhamentos deste URL (isso inclui copiar / colar um link para o Facebook)
  • número de curtidas e comentários em histórias no Facebook sobre este URL
  • número de mensagens da caixa de entrada que contêm este URL como anexo.

Então você deve usar o FQL.
Veja esta resposta: Como buscar curtidas, compartilhar e contar no facebook de um artigo


você está absolutamente certo, por total_shares é a soma dos comentários + gosta + ações mas a página i solicitado, mostra shares_i_have = total_shares + gosta
— Aziz

14

Após 7 de agosto de 2016, você ainda poderá fazer sua ligação assim:

http://graph.facebook.com/?id=https://www.apple.com/

mas o formato da resposta será diferente: não será

{
  "id": "http://www.apple.com",
  "shares": 1146997
}

mas em vez disso será

{
   "og_object": {
      "id": "388265801869",
      "description": "Get a first look at iPhone 7, Apple Watch Series 2, and the new AirPods \u2014 the future of wireless headphones. Visit the site to learn more.",
      "title": "Apple",
      "type": "website",
      "updated_time": "2016-09-20T08:21:03+0000"
   },
   "share": {
      "comment_count": 1,
      "share_count": 1094227
   },
   "id": "https://www.apple.com"
}

Então você terá que processar a resposta assim:

reponse_variable.share.share_count

1
Mas o valor SHARE_COUNT é enganosa, uma vez que está se referindo à soma dos gostos ações +
— Alon Bilu

Acho que você está certo, minha resposta foi apenas uma atualização sobre como chamar a API. Acho que o que @freedev disse sobre a contagem de ações ainda pode estar correto.
— Giorgio Tempesta

8

O que achei útil e encontrei em um link acima é essa consulta FQL, na qual você solicita curtidas, totaliza, compartilha e clica em um link, olhando para a tabela link_stat

https://graph.facebook.com/fql?q=SELECT%20like_count,%20total_count,%20share_count,%20click_count,%20comment_count%20FROM%20link_stat%20WHERE%20url%20=%20%22http://google.com%22

Isso produzirá algo como isto:

{
    data: [
        {
             like_count: 3440162,
             total_count: 13226503,
             share_count: 7732740,
             click_count: 265614,
             comment_count: 2053601
         }
    ]
}

2
A partir de 8 de agosto de 2016, o FQL não estará mais disponível e não poderá ser consultado. Para migrar seu aplicativo, use a API Upgrade Tool para ver as chamadas da API do Graph que você pode fazer.
— Nguyen Minh Binh

7

Confira esta essência . Possui trechos de como obter a contagem de compartilhamento para os seguintes serviços:

  • Facebook
  • Twitter
  • Google plus
  • Pinterest
  • LinkedIn
  • Tropeçou em

Isso tem alguns anos. Com a frequência com que cada serviço atualiza sua API, duvido que seja muito preciso.
— subvertallchris

4

O botão curtir no facebook faz duas coisas que a API não faz. Isso pode criar confusão quando você compara os dois.

  1. Se o URL que você usa no botão Curtir possui um redirecionamento, o botão realmente mostra a contagem do URL de redirecionamento versus a contagem do URL que você está usando.

  2. Se a página tiver uma propriedade og: url, o botão "Curtir" mostrará os gostos desse URL em vez do URL no navegador.

Espero que isso ajude alguém



1

quando usei o FQL, encontrei o problema (mas ainda é um problema) a documentação diz que o número mostrado é a soma de:

  • número de curtidas deste URL
  • número de compartilhamentos deste URL (isso inclui copiar / colar um link para o Facebook)
  • número de curtidas e comentários em histórias no Facebook sobre este URL
  • número de mensagens da caixa de entrada que contêm este URL como anexo.

mas no meu site o número mostrado é a soma dessas 4 contagens + número de compartilhamentos (novamente)


1

Usando o FQL, você pode fazer isso:

http://graph.facebook.com/fql?q=SELECT url, total_count FROM link_stat WHERE url='PASTE_YOUR_URL_HERE'

1

Existe uma gema de rubi para ela - SocialShares

Atualmente, ele suporta as seguintes redes sociais:

  • Facebook
  • Twitter
  • google plus
  • reddit
  • linkedin
  • pinterest
  • tropeçar
  • vkontakte
  • mail.ru
  • odnoklassniki

Uso:

:000 > url = 'http://www.apple.com/'
  => "http://www.apple.com/"
:000 > SocialShares.facebook url
  => 394927
:000 > SocialShares.google url
  => 28289
:000 > SocialShares.twitter url
  => 1164675
:000 > SocialShares.all url
  => {:vkontakte=>44, :facebook=>399027, :google=>28346, :twitter=>1836, :mail_ru=>37, :odnoklassniki=>1, :reddit=>2361, :linkedin=>nil, :pinterest=>21011, :stumbleupon=>43035}
:000 > SocialShares.selected url, %w(facebook google linkedin)
  => {:facebook=>394927, :google=>28289, :linkedin=>nil}
:000 > SocialShares.total url, %w(facebook google)
  => 423216
:000 > SocialShares.has_any? url, %w(twitter linkedin)
  => true

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.