Facebook Open Graph Protocol and Graph API (NoVA Code Camp 2010.1)

4,016 views
3,838 views

Published on

Originally presented at NoVA Code Camp 2010.1, this presentation is essentially notes to guide my talk and the associated code demo that I presented.

Published in: Technology
1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total views
4,016
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
70
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

Facebook Open Graph Protocol and Graph API (NoVA Code Camp 2010.1)

  1. 1. Facebook Open Graph Protocol and Graph API<br />NoVA Code Camp 2010.1<br />
  2. 2. Chris Busse<br />Partner & Manager of Technology, Fahrenheit Emerging Media<br />http://Twitter.com/busse<br />http://www.chrisbusse.com<br />chrisbusse@gmail.com<br />
  3. 3. Facebook Development, in general<br />April 2010: Graph API released<br />The “walled garden” is a bit more open now, this is a more semantic web<br />Privacy concerns are running wild in the media<br />….With good reason, Facebook is catering to businesses and ad dollars<br />It’s like working with a team of other developers who you can’t see, can’t communicate with, and who don’t do QA<br />“There is no real Facebook dev documentation. Anything that appears to be documentation should actually be labeled ‘Clues’”<br /> - My co-worker<br />
  4. 4. Facebook APIs<br />Core APIs<br />Graph API<br />Social plugins<br />Facebook SDKs<br />JavaScript SDK<br />PHP SDK<br />Pythod SDK<br />iPhone SDK<br />Android SDK<br />Advanced APIs<br />Facebook Query Language (FQL)<br />Facebook Markup Language<br />Old REST API<br />Old JavaScript Client Library<br />
  5. 5. Facebook APIs<br />Core APIs<br />Graph API<br />Social plugins<br />Facebook SDKs<br />JavaScript SDK<br />PHP SDK<br />Pythod SDK<br />iPhone SDK<br />Android SDK<br />Advanced APIs<br />Facebook Query Language (FQL)<br />Facebook Markup Language<br />Old REST API<br />Old JavaScript Client Library<br />
  6. 6. Part I:Graph API<br />Discovering what’s out there on Facebook<br />
  7. 7. Graph API<br />Exposes Objects in the Facebook Social Graph via JSON<br />Album<br />Event<br />Group<br />Link<br />Note<br />Page<br />Photo<br />Post<br />Status message<br />User<br />Video<br />Also enables Graph-wide searching<br />
  8. 8. Properties & Connections: User<br />Properties<br />id<br />First_name, Last_name<br />Name<br />Link<br />About<br />Birthday<br />Work, Education<br />Email, Website<br />Location<br />Gender<br />Interested_in<br />Meeting_for<br />Relationship_status<br />Religion, Political<br />Significant_other<br />timezone<br />Connections<br />Feed<br />Tagged<br />Posts<br />Picture<br />Friends<br />Activities<br />Interests<br />Music, Books, Movies, Television<br />Likes<br />Photos<br />Statuses<br />
  9. 9. Traversing the Graph<br />Authorization: OAuth 2.0<br />Search:<br />https://graph.facebook.com/search?q=starbucks&type=post<br />Selection:<br />https://graph.facebook.com/chrisbusse?fields=id,name,picture<br />Introspection<br />https://graph.facebook.com/chrisbusse?metadata=1<br />
  10. 10. Introspection of Objects<br />
  11. 11. Other Graph API Operations<br />Publishing to Facebook:<br />Feed<br />Comments<br />Likes<br />Notes<br />Links<br />Events<br />Photos<br />Deleting Objects<br />Analytics<br />
  12. 12. Demo<br />ASP.NET<br />JSON.NET<br />
  13. 13. Part II: JavaScript SDK<br />Creating objects in the Social Graph<br />or, Microformats for your Levi’s 501 button-flys<br />
  14. 14. Open Graph Protocolhttp://opengraphprotocol.org/<br />Enables any web page to become an object in a social graph<br />Used by Facebook to enable any web page to have the same functionality as a Facebook Page<br />Four required properties for every page:<br />og:title<br />og:type<br />og:image<br />og: url<br />Optional, but recommended:<br />og:description<br />og:site_name<br />
  15. 15. Open Graph Protocol: Types<br />Activities<br />activity<br />sport<br />Businesses<br />bar<br />company<br />cafe<br />hotel<br />restaurant<br />Groups<br />cause<br />sports_league<br />sports_team<br />Organizations<br />band<br />government<br />non_profit<br />school<br />University<br />People<br />actor<br />athlete<br />author<br />director<br />musician<br />politician<br />public_figure<br />Places<br />city<br />country<br />landmark<br />state_province<br />Products and Entertainment<br />album<br />book<br />drink<br />food<br />game<br />movie<br />product<br />song<br />tv_show<br />Websites<br />article<br />blog<br />website<br />
  16. 16. Examples, Object<br />
  17. 17.
  18. 18. Facebook is now aware of your object<br />Object is similar to a Page in Facebook, but exists on your site<br />Enables future messaging “by” the object<br />“When publishing, use only the 'voice' of the object. For example, if users are liking an actor in a TV show, that actor should publish stories about themselves, not general information on the show, or the TV network.”<br />
  19. 19. Resources<br />Graph API:<br />http://developers.facebook.com/docs/api<br />FB Open Graph Protocol:<br />http://developers.facebook.com/docs/opengraph<br />JSON.NET: <br />http://json.codeplex.com/<br />ASP.NET example of site authentication:<br />http://www.mattcashatt.com/readArticle.aspx?id=360d779e-dd83-431a-8bdb-e3002dae5eee<br />http://Twitter.com/busse<br />http://www.chrisbusse.com<br />chrisbusse@gmail.com<br />

×