SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
Facebook Developer APIs



Andrew Sorensen
University of Washington | Tacoma
API Types
Facebook presents its' APIs based on the type
of application you want to build:

● For Websites
● For Mobile
● Apps on Facebook



                          developers.facebook.com
Facebook for Websites
1. Enables sharing & collaboration of rich
   media (use opengraph tags!)
2. Social engagement (friends/community at
   large actions)
3. Authentication - users don't want another
   login (SSO).
4. Personalization (access user information)
Facebook for Mobile
1. Login & Requests
2. Sharing from other applications (From
   Facebook UI or via SDK)
3. Bookmarks to user installed on-device
   applications within Facebook
4. Payments

These can be developed via a native
application (w/ OS specific SDK) or via a web
application.
Apps on Facebook
● Embedded on Facebook website: existing
  webpage displayed within facebook chrome
  (iframe).
● Interaction with Facebook UI (like
  Notifications)
● Facebook analytics
Using the APIs
1. Use the provided widgets/dialogs (via
   javascript/iframe) with appropriate HTML
   markup (OpenGraph metadata properties).
2. Use an [un]offical SDK to Facebook's
   webservices.
3. Use the webservice (OpenGraph, REST)
   directly.
Offical SDKs
1.   JavaScript: (Rest, Graph API, Dialogs).
2.   PHP SDK
3.   iOS
4.   Android SDK
OAuth
● Sharing passwords with a service is over
● Request the permissions you need - users
  have to approve your application.
● Avoid implementing your own OAuth library
Why use an SDK?
1. Avoids dealing with webservice directly,
   decreasing tight technology coupling.
2. Avoid writing unit tests for the webservice
   (tests are frequently provided with SDKs).
3. API Updates are easier to deal with.
Writing your own SDK
● If you want to write your own classes to
  interact with the webservice, you'll need to
  support the Facebook Query Language
  (FQL).
● Stay away from the REST api, as it is
  depreciated.
● Both the REST and FQL APIs use the OAuth
  workflow.
● Make sure you really have the need to
  create your own SDK before doing it!
My Advice
1. Don't rely on facebook (or any 3rd party
   service) too heavily - they *will* have
   downtime.
2. Facebook is the next "Myspace"
3. Keep your secrets secret - don't share
   authentication tokens/secrets.
4. Make sure your SDK is frequently updated &
   make sure you stay on the newest version.
5. Handle all exceptions - they will be thrown.
Where to go from here
● Read the api documentation (developers.
  facebook.com)
● Check out existing SDKs for your language
  (like restfb for Java).
● Look at how other websites/apps integrate
  with Facebook.
Questions?
https://students.washington.edu/andrewx/

Contenu connexe

Tendances

Developing Joomla Extensions JUG Bangladesh meetup dhaka-2012
Developing Joomla Extensions JUG  Bangladesh meetup dhaka-2012Developing Joomla Extensions JUG  Bangladesh meetup dhaka-2012
Developing Joomla Extensions JUG Bangladesh meetup dhaka-2012Sabuj Kundu
 
What The Fuck Is Web Squared - Web²
What The Fuck Is Web Squared - Web²What The Fuck Is Web Squared - Web²
What The Fuck Is Web Squared - Web²Salah Benzakour
 
In 250 words or more, answer the following.as a developer we w
In 250 words or more, answer the following.as a developer we wIn 250 words or more, answer the following.as a developer we w
In 250 words or more, answer the following.as a developer we wssuserd93c47
 
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...COMAQA.BY
 
แบบสำรวจและประวัติของ
แบบสำรวจและประวัติของแบบสำรวจและประวัติของ
แบบสำรวจและประวัติของThanamon Bannarat
 
PHP in a mobile ecosystem
PHP in a mobile ecosystem PHP in a mobile ecosystem
PHP in a mobile ecosystem Ivo Jansch
 
Widget Summit 2008 - Building Applications for the MySpace Audience
Widget Summit 2008 - Building Applications for the MySpace AudienceWidget Summit 2008 - Building Applications for the MySpace Audience
Widget Summit 2008 - Building Applications for the MySpace AudienceMaxNewbould
 
Office web applications when how why
Office web applications   when how whyOffice web applications   when how why
Office web applications when how whypearce.alex
 
Office 365 - Introduction to SharePoint Online Development - Lync and Learn
Office 365 - Introduction to SharePoint Online Development - Lync and LearnOffice 365 - Introduction to SharePoint Online Development - Lync and Learn
Office 365 - Introduction to SharePoint Online Development - Lync and LearnCorey Roth
 
I os note kenlai-2014 mar
I os note kenlai-2014 marI os note kenlai-2014 mar
I os note kenlai-2014 marKen Lai
 
Game Development: A Crash Course
Game Development: A Crash CourseGame Development: A Crash Course
Game Development: A Crash CourseEd Donahue
 
TrainmeSofttech - Selenium Training
TrainmeSofttech - Selenium Training TrainmeSofttech - Selenium Training
TrainmeSofttech - Selenium Training Trainme Softtech
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Developmentsonichinmay
 
Vizwik part 1 views
Vizwik part 1 viewsVizwik part 1 views
Vizwik part 1 viewsVizwik
 

Tendances (18)

Firefox OS App Development
Firefox OS App DevelopmentFirefox OS App Development
Firefox OS App Development
 
Developing Joomla Extensions JUG Bangladesh meetup dhaka-2012
Developing Joomla Extensions JUG  Bangladesh meetup dhaka-2012Developing Joomla Extensions JUG  Bangladesh meetup dhaka-2012
Developing Joomla Extensions JUG Bangladesh meetup dhaka-2012
 
What The Fuck Is Web Squared - Web²
What The Fuck Is Web Squared - Web²What The Fuck Is Web Squared - Web²
What The Fuck Is Web Squared - Web²
 
In 250 words or more, answer the following.as a developer we w
In 250 words or more, answer the following.as a developer we wIn 250 words or more, answer the following.as a developer we w
In 250 words or more, answer the following.as a developer we w
 
How to setup android development environment baabtra android workshop kit Upd...
How to setup android development environment baabtra android workshop kit Upd...How to setup android development environment baabtra android workshop kit Upd...
How to setup android development environment baabtra android workshop kit Upd...
 
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
 
YAP Overview - Startups
YAP Overview - StartupsYAP Overview - Startups
YAP Overview - Startups
 
แบบสำรวจและประวัติของ
แบบสำรวจและประวัติของแบบสำรวจและประวัติของ
แบบสำรวจและประวัติของ
 
PHP in a mobile ecosystem
PHP in a mobile ecosystem PHP in a mobile ecosystem
PHP in a mobile ecosystem
 
Widget Summit 2008 - Building Applications for the MySpace Audience
Widget Summit 2008 - Building Applications for the MySpace AudienceWidget Summit 2008 - Building Applications for the MySpace Audience
Widget Summit 2008 - Building Applications for the MySpace Audience
 
10. building forms
10. building forms10. building forms
10. building forms
 
Office web applications when how why
Office web applications   when how whyOffice web applications   when how why
Office web applications when how why
 
Office 365 - Introduction to SharePoint Online Development - Lync and Learn
Office 365 - Introduction to SharePoint Online Development - Lync and LearnOffice 365 - Introduction to SharePoint Online Development - Lync and Learn
Office 365 - Introduction to SharePoint Online Development - Lync and Learn
 
I os note kenlai-2014 mar
I os note kenlai-2014 marI os note kenlai-2014 mar
I os note kenlai-2014 mar
 
Game Development: A Crash Course
Game Development: A Crash CourseGame Development: A Crash Course
Game Development: A Crash Course
 
TrainmeSofttech - Selenium Training
TrainmeSofttech - Selenium Training TrainmeSofttech - Selenium Training
TrainmeSofttech - Selenium Training
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
 
Vizwik part 1 views
Vizwik part 1 viewsVizwik part 1 views
Vizwik part 1 views
 

En vedette

Presentation by Paul McCrudden
Presentation by Paul McCruddenPresentation by Paul McCrudden
Presentation by Paul McCruddenNEXT Conference
 
"Inventing an Online Persona: How to Balance Authenticity and Your Online Bra...
"Inventing an Online Persona: How to Balance Authenticity and Your Online Bra..."Inventing an Online Persona: How to Balance Authenticity and Your Online Bra...
"Inventing an Online Persona: How to Balance Authenticity and Your Online Bra...NEXT Conference
 
Presentation by Per Roman (GP Bullhound)
Presentation by Per Roman (GP Bullhound)Presentation by Per Roman (GP Bullhound)
Presentation by Per Roman (GP Bullhound)NEXT Conference
 
Java API für Social Media
Java API für Social MediaJava API für Social Media
Java API für Social MediaWerner Keil
 
Introduction to facebook java script sdk
Introduction to facebook java script sdk Introduction to facebook java script sdk
Introduction to facebook java script sdk Yi-Fan Chu
 
Using the Power of the Archetypes to Create Hero Brands
Using the Power of the Archetypes to Create Hero BrandsUsing the Power of the Archetypes to Create Hero Brands
Using the Power of the Archetypes to Create Hero BrandsNEXT Conference
 
NEXT11 Sponsoring Opportunites
NEXT11 Sponsoring OpportunitesNEXT11 Sponsoring Opportunites
NEXT11 Sponsoring OpportunitesNEXT Conference
 

En vedette (8)

Presentation by Paul McCrudden
Presentation by Paul McCruddenPresentation by Paul McCrudden
Presentation by Paul McCrudden
 
"Inventing an Online Persona: How to Balance Authenticity and Your Online Bra...
"Inventing an Online Persona: How to Balance Authenticity and Your Online Bra..."Inventing an Online Persona: How to Balance Authenticity and Your Online Bra...
"Inventing an Online Persona: How to Balance Authenticity and Your Online Bra...
 
Presentation by Per Roman (GP Bullhound)
Presentation by Per Roman (GP Bullhound)Presentation by Per Roman (GP Bullhound)
Presentation by Per Roman (GP Bullhound)
 
Next11 k haskel
Next11 k haskelNext11 k haskel
Next11 k haskel
 
Java API für Social Media
Java API für Social MediaJava API für Social Media
Java API für Social Media
 
Introduction to facebook java script sdk
Introduction to facebook java script sdk Introduction to facebook java script sdk
Introduction to facebook java script sdk
 
Using the Power of the Archetypes to Create Hero Brands
Using the Power of the Archetypes to Create Hero BrandsUsing the Power of the Archetypes to Create Hero Brands
Using the Power of the Archetypes to Create Hero Brands
 
NEXT11 Sponsoring Opportunites
NEXT11 Sponsoring OpportunitesNEXT11 Sponsoring Opportunites
NEXT11 Sponsoring Opportunites
 

Similaire à Facebook APIs

Facebook API
Facebook APIFacebook API
Facebook APIsnipermkd
 
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint FrameworkharePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint FrameworkJenkins NS
 
Facebook Apps Vs Google Open Social
Facebook Apps Vs Google Open SocialFacebook Apps Vs Google Open Social
Facebook Apps Vs Google Open SocialRachel Vacek
 
Iskandar Najmuddin
Iskandar NajmuddinIskandar Najmuddin
Iskandar NajmuddiniPlatform
 
App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013Toni Il Caiser
 
#Instagram API Get visibility you always wanted
#Instagram API   Get visibility you always wanted#Instagram API   Get visibility you always wanted
#Instagram API Get visibility you always wantedKetan Raval
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsShailen Sukul
 
1.Plug-ins such as Flash is used in many applications because it e.pdf
1.Plug-ins such as Flash is used in many applications because it e.pdf1.Plug-ins such as Flash is used in many applications because it e.pdf
1.Plug-ins such as Flash is used in many applications because it e.pdfangelfragranc
 
instareplicate presetation.pptx
instareplicate presetation.pptxinstareplicate presetation.pptx
instareplicate presetation.pptxAkashDongre7
 
Top Cross Platform Mobile App Development Frameworks
Top Cross Platform Mobile App Development FrameworksTop Cross Platform Mobile App Development Frameworks
Top Cross Platform Mobile App Development FrameworksWDP Technologies
 
Share point 2013 add-in (formerly app) development
Share point 2013 add-in (formerly app) developmentShare point 2013 add-in (formerly app) development
Share point 2013 add-in (formerly app) developmentSuhas R Satish
 

Similaire à Facebook APIs (20)

Facebook Connect
Facebook ConnectFacebook Connect
Facebook Connect
 
Facebook API
Facebook APIFacebook API
Facebook API
 
OpenSocial
OpenSocialOpenSocial
OpenSocial
 
How to create a chat application on Android platform?
How to create a chat application on Android platform? How to create a chat application on Android platform?
How to create a chat application on Android platform?
 
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint FrameworkharePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
 
Facebook Apps Vs Google Open Social
Facebook Apps Vs Google Open SocialFacebook Apps Vs Google Open Social
Facebook Apps Vs Google Open Social
 
Iskandar Najmuddin
Iskandar NajmuddinIskandar Najmuddin
Iskandar Najmuddin
 
App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013
 
#Instagram API Get visibility you always wanted
#Instagram API   Get visibility you always wanted#Instagram API   Get visibility you always wanted
#Instagram API Get visibility you always wanted
 
Projects
ProjectsProjects
Projects
 
Presentation
PresentationPresentation
Presentation
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning Models
 
Mobile testing android
Mobile testing   androidMobile testing   android
Mobile testing android
 
1.Plug-ins such as Flash is used in many applications because it e.pdf
1.Plug-ins such as Flash is used in many applications because it e.pdf1.Plug-ins such as Flash is used in many applications because it e.pdf
1.Plug-ins such as Flash is used in many applications because it e.pdf
 
instareplicate presetation.pptx
instareplicate presetation.pptxinstareplicate presetation.pptx
instareplicate presetation.pptx
 
Kt 15 07-2013
Kt 15 07-2013Kt 15 07-2013
Kt 15 07-2013
 
How to Build a Hybrid App: A Detailed Outline
How to Build a Hybrid App: A Detailed Outline How to Build a Hybrid App: A Detailed Outline
How to Build a Hybrid App: A Detailed Outline
 
Top Cross Platform Mobile App Development Frameworks
Top Cross Platform Mobile App Development FrameworksTop Cross Platform Mobile App Development Frameworks
Top Cross Platform Mobile App Development Frameworks
 
Share point 2013 add-in (formerly app) development
Share point 2013 add-in (formerly app) developmentShare point 2013 add-in (formerly app) development
Share point 2013 add-in (formerly app) development
 
Salesforce.com Lightning
Salesforce.com LightningSalesforce.com Lightning
Salesforce.com Lightning
 

Dernier

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 

Dernier (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 

Facebook APIs

  • 1. Facebook Developer APIs Andrew Sorensen University of Washington | Tacoma
  • 2. API Types Facebook presents its' APIs based on the type of application you want to build: ● For Websites ● For Mobile ● Apps on Facebook developers.facebook.com
  • 3. Facebook for Websites 1. Enables sharing & collaboration of rich media (use opengraph tags!) 2. Social engagement (friends/community at large actions) 3. Authentication - users don't want another login (SSO). 4. Personalization (access user information)
  • 4. Facebook for Mobile 1. Login & Requests 2. Sharing from other applications (From Facebook UI or via SDK) 3. Bookmarks to user installed on-device applications within Facebook 4. Payments These can be developed via a native application (w/ OS specific SDK) or via a web application.
  • 5. Apps on Facebook ● Embedded on Facebook website: existing webpage displayed within facebook chrome (iframe). ● Interaction with Facebook UI (like Notifications) ● Facebook analytics
  • 6. Using the APIs 1. Use the provided widgets/dialogs (via javascript/iframe) with appropriate HTML markup (OpenGraph metadata properties). 2. Use an [un]offical SDK to Facebook's webservices. 3. Use the webservice (OpenGraph, REST) directly.
  • 7. Offical SDKs 1. JavaScript: (Rest, Graph API, Dialogs). 2. PHP SDK 3. iOS 4. Android SDK
  • 8. OAuth ● Sharing passwords with a service is over ● Request the permissions you need - users have to approve your application. ● Avoid implementing your own OAuth library
  • 9. Why use an SDK? 1. Avoids dealing with webservice directly, decreasing tight technology coupling. 2. Avoid writing unit tests for the webservice (tests are frequently provided with SDKs). 3. API Updates are easier to deal with.
  • 10. Writing your own SDK ● If you want to write your own classes to interact with the webservice, you'll need to support the Facebook Query Language (FQL). ● Stay away from the REST api, as it is depreciated. ● Both the REST and FQL APIs use the OAuth workflow. ● Make sure you really have the need to create your own SDK before doing it!
  • 11. My Advice 1. Don't rely on facebook (or any 3rd party service) too heavily - they *will* have downtime. 2. Facebook is the next "Myspace" 3. Keep your secrets secret - don't share authentication tokens/secrets. 4. Make sure your SDK is frequently updated & make sure you stay on the newest version. 5. Handle all exceptions - they will be thrown.
  • 12. Where to go from here ● Read the api documentation (developers. facebook.com) ● Check out existing SDKs for your language (like restfb for Java). ● Look at how other websites/apps integrate with Facebook.