Day 8 : Facebook Graph API 實作 - iT 邦幫忙- iThome
文章推薦指數: 80 %
那$data到底是什麼,你可以var_dump看,或是別忘了,有一個非常好用的Graph API Exploer:. 使用方法很簡單,先按GET ACCESS TOKEN 按鈕,會跳出一個權限的視窗,你要求 ...
DAY
8
0
30天實戰跨平台行動APP系列第
8篇
Day8:FacebookGraphAPI實作
api
facebook
鐵人賽
cwchang886
2014-10-0723:57:1421341瀏覽
所以昨天我們已經知道要如何來使用GraphAPI,也知道有一個很棒的測試工具可以幫助你寫程式,
今天就要來試用這些api,看看取回的資料是什麼格式,是否可以如我們想像中順利。
首先要先確定用戶登入我們的app時,是否真的有開放我們要的權限。
GET/{user-id}/permissions
這邊的user-id可以使用me來替代,當然要用public_profile內的user_id應該也是可以的,只是直接用/me比較方便
為了方便,我們就直接使用PHPSDK,PHPcode是
$session=newFacebookSession($access_token);
$request=newFacebookRequest(
$session,
'GET',
'/me/permissions'
);
首先用accesstoken創建session物件,再用session創建request物件,第二個參數若是GET就是讀取,若是POST就是寫入,有寫入就要提供資料,不管是圖片或是文字,這邊先探討讀取。
第三個參數就是api,詳細的api指令可以從這邊查詢:
https://developers.facebook.com/docs/graph-api/reference/v2.1/
取得的結果code
$response=$request->execute();
$graphObject=$response->getGraphObject();
$data=$graphObject->asArray();
那$data到底是什麼,你可以var_dump看,或是別忘了,有一個非常好用的GraphAPIExploer:
使用方法很簡單,先按GETACCESSTOKEN按鈕,會跳出一個權限的視窗,你要求什麼就要開啟相對應的權限,
然後選擇GET,POST或DELETE,再輸入node/page/field即可!
所以從結果可以看到返回的事JSON格式的資料,data是一個陣列,裡面的物件有兩個屬性permission跟status。
對比var_dump後,發現上段code的$data就是那個陣列,接下來就可以視權限是什麼,有沒有granted,讓App來做適當的反應。
確認權限後,就可以來看看我們能得到什麼資料,
public_profile,user_location,email
其中public_profile是基礎的公開資料,只要用戶同意login,就一定可以取得,而user_location跟email是要額外要求的!
GET/{user-id}/
有權限才會有email跟location囉,名字可以讓我們稱呼使用者,email用來註冊,location是我們這app的重點,所以也要取得。
friends
GET/{user-id}/friends
接下來我們想要取得朋友列表,但是由exploer測試後發現
怎麼只有幾個而已?我的朋友不止這些啊,難道我被大家unfriend了嗎?QQ
實際上自己測試更慘,取得的資料沒有半位朋友。
經過查詢之後才了解,原來現在只能取得使用者的朋友清單中同樣有在使用你的app並且有開放朋友列表這項權限的人了!
所以用exploer查詢friends,會查到你朋友中也有再用exploer的人,這樣就非常makesense!因為我的名單出現的都是有在寫程式的朋友。
至於我自己的app當然還在開發中,沒半個人用過。
那如果還想要取得清單怎麼辦呢?可以使用taggable_friends這個參數。
GET/{user-id}/taggable_friends
就可以取得你全部的朋友清單跟大頭貼噢,問題是這個功能,是讓你可以用app發文時tag朋友的,而且僅限這個用途,
不能用這個取得的id,再來查詢那位朋友的資料!這對我們來說會造成什麼問題待會再提。
user_status
GET/{user_id}/statuses
非常猛的一項,會取得你發表過的所有內容,包含照片,影片,打卡,貼文,你去人家那邊留言,但是就是限定你發表的
有些貼文中會有place資料,有些則無。
tagged_places
GET/{user-id}/tagged_places
可以顯示出你被標注過的地點!有經緯度資訊!
user_photos
GET/{user-id}/photos
可以取得使用者被標注的相片,其中資料一樣不一定會有地點資訊
read_stream
GET/{user-id}/posts
重頭戲來囉!可以取得用戶的動態牆資訊!
回到第二項user_friends,本來我們的目標是再3D地球上顯示朋友的動態訊息,但是除非說你的朋友也有使用同一個app,
不然是取得不了他的id的。
其實還是可以做成讓使用者登入後,發送邀請給他的朋友,請他使用,還是可以實作原來的idea。
但是沒關係,我已經想到了另一個點子,非常適合用在地球上,只需要FB的location資訊即可,
畢竟仔細想想,若只是看訊息,為何我不用facebook原生的app就好呢?
至於那個點子是什麼,隨著實作的進度大家自然就會理解囉。
留言1
追蹤
檢舉
上一篇
Day7FacebookAPI:GraphAPI
下一篇
Day9:WebGL初探
系列文
30天實戰跨平台行動APP
共26篇
目錄
RSS系列文
訂閱系列文
15人訂閱
22
Day22檢視目標
23
Day23滑鼠輸入
24
Day24Demo
25
Day25整合FB登入
26
鐵人賽25~30
完整目錄
1則留言
0
火爆浪子
iT邦研究生1級‧
2016-09-2921:36:21
我剛剛有個post到fanpage問題,大大可以幫忙嗎?
回應
檢舉
登入發表回應
我要留言
立即登入留言
iT邦幫忙鐵人賽
參賽組數
1087組
團體組數
52組
累計文章數
20466篇
完賽人數
572人
鐵人賽最新文章
[13th][Day23]httpresponseheader(下)
[13th][Day22]httpresponseheader(上)
[13th][Day21]golangcontext
股票怎麼選?掌握這原則,你也能找到強勢股
Gitpush
盤點清查與檢測掃描-安全性檢測
完賽心得
2021/11/28更新
C#入门之正则表达式匹配并替换
[Bonus系列]-來看看ReactRouterv6有什麼新功能?和v5有哪些地方不同?
前往鐵人賽
技術推廣專區
[Day2]抓取每日收盤價
[Day1]基本工具安裝
利用python取得永豐銀行API的Nonce
[Day03]tinyML開發板介紹
永豐金融API測試員
[Day01]在享受tinyML這道美食之前
[Day3]使用ta-lib製作指標
[Day4]函數打包與買進持有報酬率試算
計算API所需要的參數:HashID
計算API所需要的參數:IV
前往鐵人賽
熱門問題
哪裡有主機板維修的課程?
住宅網路架構
Windows10金鑰匙問題
python抓取cpu溫度
我的電腦(windows10)好像怪怪的,請各位大神協助我解決!
想問一下BAT問題
win10執行vmware+ubuntu會遲鈍
請教影片觀看流量費用預估
想請問這是什麼接頭?
詢問軟體著作權聲明
IT邦幫忙
站方公告
【2021iThome鐵人賽】登登登!究竟獎落誰家,2021iThome鐵人賽得獎名單正式揭曉
熱門tag
看更多
13th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
2018鐵人賽
javascript
2017鐵人賽
windows
php
python
windowsserver
linux
c#
程式設計
資訊安全
css
vue.js
sql
分享
熱門回答
哪裡有主機板維修的課程?
住宅網路架構
win10執行vmware+ubuntu會遲鈍
pythonlist問題
SQL語法兩張表關聯其中一張表多筆重複資料取日期最大不用Groupby的方法
請問大神msSQL可以讀取phpldapadmin的使用者嗎?
請問前端Vue+後端Java,要用那個開發工具呢?另外測試及部署的步驟是那些呢(之前是用JQuery+Java,使用Eclipse開發)
套用GCB後產生了一堆問題~~
java例外處理急!!!!!
想請問這是什麼接頭?
熱門文章
股票怎麼選?掌握這原則,你也能找到強勢股
盤點清查與檢測掃描-安全性檢測
Python爬蟲,真的很簡單
用visualstudio寫動物圖鑑網頁
【徵才】當一個很帥的軟體工程師(台北台中限定)
Gitpush
徵才【台南永康區】知名食品製造-後台網站管理員
Efficient&LatestECCouncil312-49v10Dumps"2021"|Real312-49v10ExamQuestions&Answers
為了轉生而點技能-JavaScript,day12(閉包Closure及迴圈的閉包陷阱
幾步解決iPhone沒有信號和無服務
一週點數排行
更多點數排行
海綿寶寶(antijava)
㊣浩瀚星空㊣(yoching)
raytracy(raytracy)
japhenchen(japhenchen)
ccenjor(ccenjor)
純真的人(jer5173)
fillano(fillano)
mathewkl(mathewkl)
一級屠豬士(hitomitanaka)
dscwferp(dscwferp)
×
At
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{result.label}}
{{result.account}}
關閉
延伸文章資訊
- 1Facebook API Example - 第一次使用、範例和教學筆記
沒想到要寫寫Facebook API 啦!我原先以為是Facebook 會提供一個工作站讓使用者上傳程式碼去運行,結果做這件事的還得自行找一台機器啦,但這樣也比較 ...
- 2Day 8 : Facebook Graph API 實作 - iT 邦幫忙- iThome
那$data到底是什麼,你可以var_dump看,或是別忘了,有一個非常好用的Graph API Exploer:. 使用方法很簡單,先按GET ACCESS TOKEN 按鈕,會跳出一個權限的...
- 3廣告主須知:Facebook轉換API是什麼?用途與設定一次掌握
為了因應Apple 的iOS 14 政策和禁止第三方Cookie,Facebook 推出了轉換API(Conversions API,簡稱CAPI),這為廣告主提供另一種追蹤廣告數據的方式。
- 4[Python教學] Facebook圖形API測試工具,取得粉絲頁按讚數
Access token:請由Facebook API圖形API測試工具. 當然,其他程式語言如C#、Node.js 甚至App Inventor等都可以做到本範例的效果,您可以在 ...
- 5Facebook API 教學:客製化登入流程並以粉絲頁互動應用為例