f Introduction toFacebook PY API
Introduction to Facebook Python APISocial Network and Applications, 2011LittleQ, The Department of Computer Science, NCCU
f Introduction toFacebook PY API
Objectives
• Learn the concepts of Facebook API
• Learn how to play with Facebook Graph API
f Introduction toFacebook PY API
Core Topics
• Facebook Developers website
• Graph API
• Facebook Python SDK
• Resources
f Introduction toFacebook PY API
Facebook Developers
• Provide you online documentations
• Forum for discussion
• Management of your applications
f Introduction toFacebook PY API
Where is it?
f Introduction toFacebook PY API
Social Plugins
• Like Button, Send Button, Login Button
• Comments
• Your Friends
• Activity Feed, Live Stream
f Introduction toFacebook PY API
Is That What You Want?
f Introduction toFacebook PY API
Graph API
• Facebook’s core
• Social graph
• Connections
Application Graph API Facebook Database
Access Token Request Data
Aggregate InformationResponse Data
f Introduction toFacebook PY API
Graph Model
• Composed of objects and connections
• Identify entities and relationships by id
• Data will be stored with smallest spaces and keep being updated
f Introduction toFacebook PY API
Object Model
information from graph API without access token
f Introduction toFacebook PY API
Graph Model
information from graph API with access token
f Introduction toFacebook PY API
Connection Model
• All of the object in the Facebook social graph are connected to each other via connections
• Objects are just like entities while connections are like relationship
• For example, users, pages and groups are objects and likes, friends and feeds are connections
f Introduction toFacebook PY API
Connection Model
f Introduction toFacebook PY API
Access to Graph
• HTTP(S) Graph API
• SDKs
‣ Javascript SDK
‣ iOS SDK
‣ Android SDK
‣ PHP SDK
‣ Python SDK
f Introduction toFacebook PY API
HTTP(S) Graph API
• RESTful HTTP request & response
• Response data-type: JSON
• Access URL: graph.facebook.com
f Introduction toFacebook PY API
HTTP(S) Graph API
• Request information of an object with id or username
• id-or-username can be “me” with the access token
http://graph.facebook.com/<id-‐or-‐username>
f Introduction toFacebook PY API
HTTP(S) Graph API
{ "id": "1681390745", "name": "Colin Su", "first_name": "Colin", "last_name": "Su", "link": "https://www.facebook.com/littleq0903", "username": "littleq0903", "gender": "male", "locale": "en_US"}
http://graph.facebook.com/littleq0903
Result:
f Introduction toFacebook PY API
Access Token
• A long string stands for the authentication of users
• Temporary
• The information behind the access token
‣ user id
‣ app id
‣ expired time
‣ secret
f Introduction toFacebook PY API
Get Access Token
• GetMyAccesshttp://getmyaccess.heroku.com
• It requires a permission called “offline_access”, so this token can be valid for a long time
f Introduction toFacebook PY API
HTTP(S) Graph API
• Access token should be transferred as a HTTP GET variable
• More information: developers.facebook.com/docs/reference/api/
http://graph.facebook.com/littleq0903?access_token=...
f Introduction toFacebook PY API
Python SDK
• Let you access all features of the Graph API
• That’s all, let’s play!
f Introduction toFacebook PY API
Python SDK
• https://github.com/facebook/python-sdk
• Designed to support Graph API and FB Javascript SDK (You will learn in the future)
f Introduction toFacebook PY API
Graph
• Depends your access token
• Everyone will have their own graph, could be unique
f Introduction toFacebook PY API
Graph API Class
• Fetch the graph by implement it
import facebook
graph = facebook.GraphAPI()user = graph.get_object(“littleq0903”)
f Introduction toFacebook PY API
Authentication
• Graph can be implemented with an access token
• And the perspective of the graph will be different
my_profile = graph.get_object(“me”)
graph = GraphAPI(ACCESS_TOKEN)
f Introduction toFacebook PY API
Graph Methods
• get_object, get_objects
• get_connections
• put_object
• put_wall_post, put_comment, put_like
• delete_object
f Introduction toFacebook PY API
Demo
f Introduction toFacebook PY API
Homework
• Fetch a kind of data on the FB Graph
• Do some statistics on it
• Don’t Copy from others
f Introduction toFacebook PY API
Q&A TimeThanks for your listening