web-dev-qa-db-ja.com

Facebook API:ページ/グループ投稿のように、共有、コメント数を取得する最良の方法は?

投稿のいいね!、共有、コメント数を取得する最良の方法は何ですか?

私はFQL経由で試していますが、URLがFB投稿URLの場合はデータを提供していないようです:

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

Graph API Explorerから投稿情報を取得する場合:

386050065267_10153256675935268

いいねカウントと共有カウントが得られ、コメントカウントは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="
    }
  }
}

奇妙なことは、アプリでそのクエリを実行しても、共有カウントやいいねカウントが得られないことです。私は何か間違っていますか? Explorerのデータは、アクセスできるアプリとは異なりますか?

386050065267_10153256675935268/likes?summary = trueでいいねカウントを取得できることを知っています

最大のことは、共有カウントの欠落です。

まとめ

FQLでこれらの統計情報を取得できますか?そうでない場合、グラフAPIを使用して共有カウントを取得するにはどうすればよいですか?

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

結果:

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

    ], 
    "paging": {

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

    ], 
    "paging": {

    }, 
    "summary": {
      "total_count": 255    //comment count
    }
  }
}
41

https://graph.facebook.com/?ids=http://mycodingtricks.comのようなfacebook graph apiを使用すると、次のようなjsonコードが返されます。

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

そのAPIを使用してすべてのソーシャルカウントを実行できる独自のphpスクリプトを開発しました。 http://mycodingtricks.com/share/social.php?url=YOUR-URL-HERE そして次のようなデータを返します:

{  
    "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
}

しかし、自分で使用したい場合は、Facebookのシェアなどを数える方法についての完全な記事があります。 http://mycodingtricks.com/php/2-ways-to-count-facebook-likes-shares-and-comments-using-php/

5
Shubham Kumar

FQLは現在減価償却されています。 2.x APIを使用して行う方法は次のとおりです。

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

これにより、たとえば次のようなxmlが作成されます。

"summary": {
   "total_count": 80
 }

また、より大きなサイズの画像URLも必要な場合は、チェックアウトしてください

?fields=full_picture,attachments
3
Kevin