web-dev-qa-db-fra.com

API Facebook: la meilleure façon d'obtenir comme, partager, compter les commentaires pour une page / publication de groupe?

Quelle est la meilleure façon d'obtenir le même contenu, de partager et de commenter un article?

J'essaie via FQL mais il ne semble pas donner de données lorsque l'URL est une URL de publication FB:

SELECT like_count, comment_count, share_count FROM link_stat WHERE url = "https://www.facebook.com/Macklemore/posts/10153256675935268"

Lorsque j'obtiens les informations de publication via l'explorateur d'API Graph:

386050065267_10153256675935268

Cela me donne le même nombre et le nombre de partages et je peux obtenir le nombre de commentaires via 386050065267_10153256675935268/comments?summary=true

{
  "id": "386050065267_10153256675935268", 
  "from": {
    "category": "Musician/band", 
    "name": "Macklemore", 
    "id": "386050065267"
  }, 
  "message": "We’re playing a FREE show in November to celebrate the new Microsoft Store opening in Jacksonville, Florida. Come see us! Info here: http://msft.it/STJevent\n\nThursday, November 21, 2013\n10:00 p.m.\nStart lining up for your chance to attend the show on Saturday.\nLocation: Outdoors behind Oakley, near Dick’s Sporting Goods.", 
  "actions": [
    {
      "name": "Comment", 
      "link": "https://www.facebook.com/386050065267/posts/10153256675935268"
    }, 
    {
      "name": "Like", 
      "link": "https://www.facebook.com/386050065267/posts/10153256675935268"
    }
  ], 
  "privacy": {
    "value": ""
  }, 
  "type": "status", 
  "status_type": "mobile_status_update", 
  "created_time": "2013-09-26T16:30:23+0000", 
  "updated_time": "2013-09-27T20:39:45+0000", 
  **"shares": {
    "count": 274
  },** 
  "likes": {
    "data": [
      {
        "name": "Jabson Ramos", 
        "id": "100005418486411"
      }, 
      {
        "name": "Sophia Belen Parada Andrades", 
        "id": "100002552653152"
      }, 
      {
        "name": "Oli Barrera", 
        "id": "100001718791443"
      }, 
      {
        "name": "Viktoria Martinez", 
        "id": "1697663024"
      }
    ], 
    **"count": 3345**
  }, 
  "comments": {
    "data": [
      {
        "id": "10153256675935268_43537841", 
        "from": {
          "name": "Vu Thai", 
          "id": "1338690172"
        }, 
        "message": "Sean Viray Matt Win Soo... about my birthday weekend...", 
        "message_tags": [
          {
            "id": "75311036", 
            "name": "Sean Viray", 
            "type": "user", 
            "offset": 0, 
            "length": 10
          }, 
          {
            "id": "25113189", 
            "name": "Matt Win", 
            "type": "user", 
            "offset": 11, 
            "length": 8
          }
        ], 
        "can_remove": false, 
        "created_time": "2013-09-26T16:31:03+0000", 
        "like_count": 4, 
        "user_likes": false
      }, 
      .....
    ], 
    "paging": {
      "cursors": {
        "after": "MjY=", 
        "before": "MQ=="
      }, 
      "next": "https://graph.facebook.com/386050065267_10153256675935268/comments?limit=25&after=MjY="
    }
  }
}

Une chose étrange est que lorsque j'exécute cette requête dans mon application, je n'obtiens pas le nombre de partages ou le nombre de J'aime Est-ce que je fais quelque chose de mal? Les données de l'explorateur sont-elles différentes de celles auxquelles les applications ont accès?

Je sais que je peux obtenir le même nombre via 386050065267_10153256675935268/likes? Summary = true

La plus grande chose serait le nombre de parts manquantes.

Donc résumé,

Pouvez-vous obtenir ces statistiques via FQL? Sinon, comment pouvez-vous obtenir le nombre de partages via l'API graphique?

16
DamnSemicolon
POST_ID?fields=likes.summary(true),comments.summary(true),shares

Résultat:

{
  "shares": {
    "count": 272            //share count
  }, 
  "likes": {
    "data": [

    ], 
    "paging": {

    }, 
    "summary": {
      "total_count": 3453   //like count
    }
  }, 
  "comments": {
    "data": [

    ], 
    "paging": {

    }, 
    "summary": {
      "total_count": 255    //comment count
    }
  }
}
41
Stéphane Bruckert

Vous pouvez utiliser l'API Facebook Graph comme https://graph.facebook.com/?ids=http://mycodingtricks.com et il renverra un code json comme

{  
    "http://mycodingtricks.com":{  
        "id":"http://mycodingtricks.com",
        "shares":1
    }
}

J'ai développé mon propre script php sur lequel vous pouvez tous compter sur les réseaux sociaux en utilisant cette API. http://mycodingtricks.com/share/social.php?url=YOUR-URL-HERE et il renverra des données comme:

{  
    "facebook":[  
        {  
            "share_count":1,
            "like_count":0,
            "comment_count":0,
            "total_count":1,
            "click_count":0,
            "comments_fbid":567687199998199,
            "commentsbox_count":0
        }
    ],
    "googleplus":10,
    "Twitter":3,
    "buffer":0,
    "pinterest":0,
    "stumblupon":1,
    "reddit":"<html><body><h1>403 Forbidden<\/h1>\nRequest forbidden by administrative rules.\n<\/body><\/html>\n",
    "linkedin":0
}

Mais si vous voulez l'utiliser par vous-même, voici un article complet sur la façon de compter le partage facebook, comme et tout. http://mycodingtricks.com/php/2-ways-to-count-facebook-likes-shares-and-comments-using-php/

5
Shubham Kumar

Le FQL est désormais amorti. Voici comment procéder à l'aide de l'API 2.x:

get /1000076132681/posts?limit=3&fields=object_id,likes.summary(true),comments.summary(true)

Cela se traduit par le xml, par exemple:

"summary": {
   "total_count": 80
 }

Et si vous avez également besoin de l'URL d'image de plus grande taille, consultez

?fields=full_picture,attachments
3
Kevin