facebook graph api
DESCRIPTION
Apresentação da nova Graph API do Facebook, esta que classifica e relaciona o conteúdo da rede social em forma de um grafo contendo objects e connections e seus correlacionamentosTRANSCRIPT
![Page 1: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/1.jpg)
graph api
fagner moura - @seufagner
![Page 2: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/2.jpg)
![Page 3: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/3.jpg)
old REST(?) apihttps://api.facebook.com/method/[name]
• users.hasAppPermission• users.isAppUser• users.getLoggedInUser• stream.publish ...
![Page 4: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/4.jpg)
old REST(?) apihttps://api.facebook.com/method/[name]
• users.hasAppPermission• users.isAppUser• users.getLoggedInUser• stream.publish ...
session_key
![Page 5: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/5.jpg)
old REST(?) apihttps://api.facebook.com/method/[name]
• users.hasAppPermission• users.isAppUser• users.getLoggedInUser• stream.publish ...
session_key
![Page 6: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/6.jpg)
old REST(?) apihttps://api.facebook.com/method/[name]
• users.hasAppPermission• users.isAppUser• users.getLoggedInUser• stream.publish ...
deprecatedsession_key
![Page 7: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/7.jpg)
old REST apihttps://api.facebook.com/method/[name]
• users.hasAppPermission• users.isAppUser• users.getLoggedInUser• stream.publish ...
deprecatedsession_key
![Page 8: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/8.jpg)
old REST apihttps://api.facebook.com/method/[name]
• users.hasAppPermission• users.isAppUser• users.getLoggedInUser• stream.publish ...
deprecatedsession_key
![Page 9: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/9.jpg)
![Page 10: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/10.jpg)
REST ?• easy SOA• resources• only HTTP• stateless
![Page 11: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/11.jpg)
• lightweight• simple• readable
now, only json response
![Page 12: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/12.jpg)
objects
![Page 13: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/13.jpg)
objects
userpagemessagestatus messagephotovideo ...
![Page 14: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/14.jpg)
objects
https://graph.facebook.com/ID
userpagemessagestatus messagephotovideo ...
![Page 15: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/15.jpg)
objects
https://graph.facebook.com/19292868552
userpagemessagestatus messagephotovideo ...
![Page 16: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/16.jpg)
objects
https://graph.facebook.com/plataform
userpagemessagestatus messagephotovideo ...
![Page 17: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/17.jpg)
userpagemessagestatus messagephotovideo ... objects
+connections
![Page 18: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/18.jpg)
user@connections
![Page 19: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/19.jpg)
homefeedpostsfriendspicturephotos ... user@connections
![Page 20: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/20.jpg)
homefeedpostsfriendspicturephotos ...
(public data)
user@connections
https://graph.facebook.com/me/friends
https://graph.facebook.com/me/picture
![Page 21: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/21.jpg)
homefeedpostsfriendspicturephotos ...
(read_stream permission)
user@connections
https://graph.facebook.com/me/home
https://graph.facebook.com/me/feed
![Page 22: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/22.jpg)
homefeedpostsfriendspicturephotos ...
(read_stream permission)
user@connections
session_token?
![Page 23: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/23.jpg)
homefeedpostsfriendspicturephotos ...
(read_stream permission)
user@connections
access_token
![Page 24: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/24.jpg)
homefeedpostsfriendspicturephotos ...
(user_photos permission)
user@connections
access_token
![Page 25: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/25.jpg)
grantpermissions
• oauth 2.0• server side• client side
![Page 26: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/26.jpg)
![Page 27: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/27.jpg)
• open protocol• authentication• widely used
![Page 28: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/28.jpg)
• open protocol• authentication• widely used
![Page 29: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/29.jpg)
• oauth 2.0• server side• client side
grantpermissions
![Page 30: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/30.jpg)
• oauth server• user• application
actors
![Page 31: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/31.jpg)
server side flow
App try to accessFacebook
OAuth Dialog(App Authorization)
OAuth Dialog(User Authentication)
curl -F 'client_id=113391995351148' \-F 'redirect_uri=http://facebook-buraco-debug.jogatina.com.....' \https://www.facebook.com/dialog/oauth
![Page 32: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/32.jpg)
server side flow
OAuth Dialog(App Authorization)
OAuth Dialog(User Authentication)
curl -F 'client_id=113391995351148' \-F 'redirect_uri=http://facebook-buraco-debug.jogatina.com.....' \-F 'scope=email, read_stream' \https://www.facebook.com/dialog/oauth
App try to accessFacebook
![Page 33: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/33.jpg)
server side flow
OAuth Dialog(App Authorization)
OAuth Dialog(User Authentication)
Cookie not found, show OAuth Dialog (facebook layout)
App try to accessFacebook
![Page 34: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/34.jpg)
server side flow
OAuth Dialog(App Authorization)
OAuth Dialog(User Authentication)
goes to App authorization directly
App try to accessFacebook
![Page 35: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/35.jpg)
server side flow
access OAuth Dialog(App Authorization)
OAuth Dialog(User Authentication)
don´t allow !redirect with some params like: error_reason, error, etc.
HTTP 302(redirect_url param)
![Page 36: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/36.jpg)
server side flow
access OAuth Dialog(App Authorization)
OAuth Dialog(User Authentication)
allow !
redirect with authorization code param
HTTP 302(redirect_url param)
![Page 37: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/37.jpg)
server side flow
Authorization) http://mydomain...
curl -F 'client_id=113391995351148' \-F 'redirect_uri=http://facebook-buraco-debug.jogatina.com.....' \-F 'client_secret=f8138690fe947221d4d2c071aa945395' \
-F 'code=[authorization code here]' \
https://graph.facebook.com/oauth/access_token
OAuth Dialog(App Authorization)
![Page 38: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/38.jpg)
server side flow
{ "error": {"type": "OAuthException", "message": "Error validating verification code." }
}
HTTP 400Authorization) http://mydomain...
![Page 39: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/39.jpg)
server side flow
Sucessfull authenticated !
access_token in the body of the request
HTTP 302(redirect_url param)Authorization) http://mydomain...
![Page 40: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/40.jpg)
• oauth 2.0• server side• client side
grantpermissions
![Page 41: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/41.jpg)
client side flow
• desktop• mobile• javascript
![Page 42: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/42.jpg)
HTTP requestOAuth Dialog(App Authorization)
client side flow
curl -F 'client_id=113391995351148' \-F 'redirect_uri=http://facebook-buraco-debug.jogatina.com.....' \-F ‘response_type=token' \https://www.facebook.com.br/dialog/oauth
![Page 43: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/43.jpg)
HTTP request
client side flow
HTTP 302(redirect_url param)
Pass URI fragment with access_tokenhttp://jogatina.com....#access_token=gzZ666a..&expires_in=64090
![Page 44: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/44.jpg)
{ "error": {"type": "OAuthException", "message": "Error validating verification code." }
}
HTTP request
client side flow
HTTP 400
![Page 45: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/45.jpg)
services available
• reading• searching• publishing• ...
curl -F ‘fields=id,name,picture' \-F ‘access_token=...' \https://graph.facebook.com/fagner.moura
![Page 46: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/46.jpg)
services available
• reading• searching• publishing• ...
curl -F ‘q=futebol' \-F ‘type=user' \https://graph.facebook.com/search
![Page 47: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/47.jpg)
services available
• reading• searching• publishing• ...
curl -F ‘message=Jogue no Jogatina hoje' \-F ‘access_token=...’ \https://graph.facebook.com/fagner.moura/feed
![Page 48: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/48.jpg)
services available
• reading• searching• publishing• ...
paginginsights
deleting
real time update
![Page 49: Facebook graph api](https://reader030.vdocuments.us/reader030/viewer/2022020110/554ef7f2b4c90577698b48aa/html5/thumbnails/49.jpg)
:-)
fagner moura - @seufagner