Pages

Tuesday, September 22, 2015

多一點(麻煩)

別抱怨吃藥覆診麻煩,Facebook 也很麻煩的。

話說我要用Facebook 的Graph API,個API 看看到覺得幾好用幾方便,因為那只是個url GET request,return value 是個json。而個request 是這樣:

https://graph.facebook.com/<<node id>>/<<edge>>?access_token=<<token>>

個token 可以在 Graph API Token 度得到。

例如我要看胡同的facebook page的資料,即是名稱、地址、電話、like等等:

https://graph.facebook.com/hutongsauna?access_token=<<token>>

而個return 返來的json:

{
   "id": "309000455861524",
   "about": "http://www.hutonghk.com \u9999\u6e2f\u4e5d\u9f8d\u65fa\u89d2\u4e0a\u6d77\u8857639-645\u865f \u5bb6\u65fa\u6a133\u6a13, 2/F, Kar Wong Building, 639-645 Shanghai Street,  Mongkok, Kowloon, Hong Kong",
   "can_post": true,
   "category": "Company",
   "category_list": [
      {
         "id": "2200",
         "name": "Company"
      }
   ],
   "checkins": 2,
   "cover": {
      "cover_id": "682432225185010",
      "offset_x": 0,
      "offset_y": 5,
      "source": "https://fbcdn-photos-c-a.akamaihd.net/hphotos-ak-xpa1/v/t1.0-0/q82/p480x480/10606611_682432225185010_6206755817102689058_n.jpg?oh=982b5fb5b3227dd48b284fb07b63a39e&oe=56A7BBF2&__gda__=1449687028_f215c2072717472b18b371cf8dd40776",
      "id": "682432225185010"
   },
   "description": "\u80e1\u540c\u6851\u62ff Hu-Tong  Club, \u4f4d\u65bc\u9999\u6e2f\u65fa\u89d2\n\n\u9999\u6e2f\u6700\u65b0\u958b\u5e55(2012\u5e7410\u670827\u65e5), \n\u9999\u6e2f\u6700\u5927\u6700\u8c6a\u83ef\u7684\u6851\u62ff\u4e4b\u4e00. \n\n\u5730\u5740\uff1a\n\u9999\u6e2f\u4e5d\u9f8d\u65fa\u89d2\u4e0a\u6d77\u8857639-645\u865f \u5bb6\u65fa\u6a133\u6a13\n\uff08\u6e2f\u9421\u65fa\u89d2\u7ad9\uff21\uff12\u51fa\u53e3\uff09\n\nADD:2/F, Kar Wong Building, 639-645 Shanghai Street, \nMongkok, Kowloon, Hong Kong, \nMong Kok MTR A2",
   "has_added_app": false,
   "is_community_page": false,
   "is_published": true,
   "likes": 3754,
   "link": "https://www.facebook.com/hutongsauna",
   "location": {
      "city": "Mong Kok",
      "country": "Hong Kong",
      "latitude": 22.3198395,
      "longitude": 114.1678772,
      "street": "\u65fa\u89d2\u4e0a\u6d77\u8857639-645\u865f\u5bb6\u65fa\u6a13\u4e09\u6a13",
      "zip": "90000"
   },
   "name": "HuTong Club",
   "parking": {
      "lot": 0,
      "street": 0,
      "valet": 0
   },
   "phone": "+85223969595",
   "talking_about_count": 19,
   "username": "hutongsauna",
   "website": "http://www.hutonghk.com",
   "were_here_count": 2
}


而如果想看posts,個edge 是"feed"就得:

https://graph.facebook.com/hutongsauna/feed?access_token=<<token>>

個return value:

{
   "data": [
      {
         "id": "309000455861524_888023984625832",
         "from": {
            "name": "HuTong Club",
            "category": "Company",
            "category_list": [
               {
                  "id": "2200",
                  "name": "Company"
               }
            ],
            "id": "309000455861524"
         },
         "message": "\u4eca\u65e5 \u6478\u9ed1\u6d3e\u5c0d\n\u660e\u65e5 \u795e\u79d8\u6d3e\u5c0d (\u6301\u4e45\u6230\u6d3e\u5c0d) !!??\n\n\u80e1\u540c\u5b98\u7db2 http://www.hutonghk.com\n\n\u8b93\u4f60\u597d\u597d\u4eab\u53d7. \u7cbe\u5f69\u7684\u4e00\u591c. \u4f86\u904e\u5c31\u77e5\u9053!! \n\n\u8d0a\u52a9\u5546 http://www.18dsc.com.hk",
         "picture": "https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-xpf1/v/t1.0-0/s130x130/12027742_888023984625832_4203065587458358447_n.jpg?oh=51cabfe618e2a11bc722e9c2b149e4af&oe=565E6C1B&__gda__=1453028518_38e897e6702788f03d6c023ce9d60a9e",
         "link": "https://www.facebook.com/hutongsauna/photos/a.336832533078316.80464.309000455861524/888023984625832/?type=1",
         "name": "Timeline Photos",
         "icon": "https://www.facebook.com/images/icons/photo.gif",
         "actions": [
            {
               "name": "Comment",
               "link": "https://www.facebook.com/309000455861524/posts/888023984625832"
            },
            {
               "name": "Like",
               "link": "https://www.facebook.com/309000455861524/posts/888023984625832"
            }
         ],
         "privacy": {
            "value": "",
            "description": "",
            "friends": "",
            "allow": "",
            "deny": ""
         },
         "type": "photo",
         "status_type": "added_photos",
         "object_id": "888023984625832",
         "created_time": "2015-09-18T09:37:30+0000",
         "updated_time": "2015-09-18T09:37:30+0000",
         "is_hidden": false,
         "is_expired": false,
         "likes": {
            "data": [
               {
                  "id": "693495060691853",
                  "name": "\u718a\u67ef\u6797"
               },
               {
                  "id": "10201078168236715",
                  "name": "Sun Billy"
               },
               {
                  "id": "816396911721281",
                  "name": "Aaron Yu"
               }
            ],
            "paging": {
               "cursors": {
                  "after": "ODE2Mzk2OTExNzIxMjgx",
                  "before": "NjkzNDk1MDYwNjkxODUz"
               }
            }
         }
      },
...]
}


大家可以見到資料都幾詳盡,但有個好重要的資料就是欠逢:每個post的like數,反而有like過的user的id。這些like user是以paging 的形式顯示,每次只傳回25個user,如果我要知道某個post 的like 數,我就要不停loop next page才count到總like數,很浪費network resource。很想知為何沒有總like數!

後來發現要用多一個request:

https://graph.facebook.com/<<post id>>/likes?summary=1

才能拿到like數,真麻煩!!!!


No comments:

Post a Comment