SlideShare una empresa de Scribd logo
1 de 34
Facebook and
 OpenSocial
Development


        Liran.zelkha@alunasoft.com
Aluna
 Israel’s leading Java/JavaEE and SOA
  consulting company
 Customers:
How Facebook Apps work
 Every profile page is made up of many
  independent portlets or profile boxes.
 Each portlet is generated statically by a possibly
  external application and stored by Facebook.
 It could be an iframe, but in most cases is not.
 Portlets are not actually changed in the profile
  page – they are changed elsewhere!
 Facebook has mechanisms to link in applications,
  and APIs for applications to communicate with
  Facebook.
Facebook Communication
         request for profile

            profile


         request for canvas
                                          request for canvas content

                                                Facebook API use

                                              update profile box, etc.

                                                   canvas
           canvas


user                           facebook.com                 application (UCT)
What can the API do
   Get a list of friend ids or friends who are
    running the same app
   Get and set notifications of events
   Set content of profile box
   Get specific information on a user
   Add to the Newsfeed for a user
   Etc.
Client Libraries
   Client libraries will simplify the calls to the
    platform by reducing the amount of code
    you have to write.

   If you don’t use a client library then will
    have to do the following for each method
    call:
    ◦ Construct a signature
    ◦ Create and send a HTTP POST request
    ◦ Parse the XML result of the request
Example Clients
   Facebook Clients
    ◦ PHP5
    ◦ Java
   Independent Clients
    ◦   ActionScript
    ◦   Cocoa
    ◦   PHP4
    ◦   Ruby
    ◦   Python
    ◦   VB.NET
Methods
   The facebook API currently has 20
    methods that can be used to get
    information from facebook accounts.
Authentication
   facebook.auth.createToken
    ◦ creates an auth_token to be passed in as a
      parameter to login.php
   facebook.auth.getSession
    ◦ returns the session key bound to an
      auth_token
Facebook Query Language
   Facebook.fql.query
    ◦ FQL is a way to query the same facebook data
      you can access through the other API
      functions, but with a SQL style interface.

    ◦ SELECT name, affiliations FROM user WHERE
      uid IN (SELECT uid2 FROM friend WHERE
      uid1=211031) AND "Facebook" IN
      affiliations.name AND uid < 10
Events
   facebook.events.get
    ◦ returns all visible events according to the filters
      specified

   facebook.events.getMembers
    ◦ returns membership list data associated with
      an event
Friends
   facebook.friends.areFriends
    ◦ returns whether or not each pair of specified
      users is friends with each other
   facebook.friends.get
    ◦ returns the identifiers of the current user’s
      Facebook friends
   facebook.friends.getAppUsers
    ◦ returns the identifiers of the current user’s
      Facebook friends who are currently signed in
Groups
   facebook.groups.get
    ◦ returns all visible groups according to the
      filters specified
   facebook.groups.getMembers
    ◦ returns membership list data associated with a
      group
Notifications
   facebook.notifications.get
    ◦ returns information on outstanding Facebook
      notifications for current session user.
    ◦ such as messages, friend requests, pokes,
      group invites and event invites
Photos
   facebook.photos.addTag
    ◦ adds a tag with the given information to a
      photo
   facebook.photos.createAlbum
    ◦ creates and returns a new album owned by the
      current session user
   facebook.photos.get
    ◦ returns all visible photos according to the filters
      specified
Photos
   facebook.photos.getAlbums
    ◦ returns metadata about all of the photo albums
      uploaded by the specified user
   facebook.photos.getTags
    ◦ returns the set of user tags on all photos
      specified
   facebook.photos.upload
    ◦ uploads a photo owned by the current session
      user and returns the new photo
Users
   facebook.users.getInfo
    ◦ returns the information in a users profile
   facebook.users.getLoggedInUser
    ◦ gets the user id associated with the current
      session
Responses
   Each of these methods can have a
    different response format depending on
    what you are programming in.
    ◦ JSON (JavaScript Object Notation)
    ◦ XML
    ◦ Facebook PHP Client
FBML
   Language used by Facebook to specify
    any fragment of Web pages.
   Mostly just like HTML!
   Forms get additional fields added to pass
    Facebook parameters silently.
   Images are redirected to local copies.
   Links must be absolute (parameters do
    not work as expected in all toolkits).
   Lots of additional Facebook-specific items
    ◦ <fb:name uid=…> for a user’s name
    ◦ <fb:profile-pic …> for a user’s profile picture
FQL
   Facebook Query Language allows access
    to user database with language that is
    similar to SQL.

   Example:
    ◦ SELECT first_name FROM user WHERE
      uid=$params->{user}
    ◦ To get the first name of a user based on the
      user-id
Creating an Application
   What you need:
    ◦ Web Server
    ◦ API toolkit or roll-your-own
 Add the Developer application to your
  profile.
 Switch to the Developer application.
 Apply for a key.
What does a typical application
                 do?
   Check CGI parameters.
   Authenticate using Facebook API.
   Draw configuration Web page on canvas.
   Allow user to update options …
   Write FBML to profile box.
   Save per-user state in database or in
    filesystem.
Example: Profile Box
Example: Application Canvas
Open Social
What problem does it try to solve?
   Writing applications specifically for a
    single API
Why?


   Developers                 Site Owners
    ◦ Can reuse apps on         ◦ New site
      new social networks         immediately gains
    ◦ Reduce code                 many applications
      maintenance               ◦ Pre-existing broad
    ◦ Increased potential         developer base
      audience for
      application
Who Does It?
How Facebook Apps Connect and Communicate Using APIs

Más contenido relacionado

La actualidad más candente

Introduction to facebook platform
Introduction to facebook platformIntroduction to facebook platform
Introduction to facebook platformVenkatesh Narayanan
 
Joomunited social backlinks
Joomunited social backlinksJoomunited social backlinks
Joomunited social backlinksxavierreiss
 
Interactive with-facebook
Interactive with-facebookInteractive with-facebook
Interactive with-facebookTien Nguyen
 
Iskandar Najmuddin
Iskandar NajmuddinIskandar Najmuddin
Iskandar NajmuddiniPlatform
 
Php day 2011 - Interactive-with-facebook
Php day 2011 - Interactive-with-facebookPhp day 2011 - Interactive-with-facebook
Php day 2011 - Interactive-with-facebookQuang Anh Le
 
Virtual Tech Days 2010 - Integrating Social Networks with ASP.NET
Virtual Tech Days 2010 - Integrating Social Networks with ASP.NETVirtual Tech Days 2010 - Integrating Social Networks with ASP.NET
Virtual Tech Days 2010 - Integrating Social Networks with ASP.NETKrishna T
 
Creating a content managed facebook app
Creating a content managed facebook appCreating a content managed facebook app
Creating a content managed facebook appOS-Cubed, Inc.
 
[Code Camp] Ứng dụng Facebook API vào phát triển website
[Code Camp] Ứng dụng Facebook API vào phát triển website[Code Camp] Ứng dụng Facebook API vào phát triển website
[Code Camp] Ứng dụng Facebook API vào phát triển websiteSieu Web
 
Facebook Platform - Tech
Facebook Platform - TechFacebook Platform - Tech
Facebook Platform - TechDavid Zhuang
 
Leveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook AppsLeveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook AppsDavid Keener
 
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
 
Facebook Python SDK - Introduction
Facebook Python SDK - IntroductionFacebook Python SDK - Introduction
Facebook Python SDK - IntroductionColin Su
 
What's New on the Facebook Platform, August 2010
What's New on the Facebook Platform, August 2010What's New on the Facebook Platform, August 2010
What's New on the Facebook Platform, August 2010Nudge Social Media
 

La actualidad más candente (18)

Introduction to facebook platform
Introduction to facebook platformIntroduction to facebook platform
Introduction to facebook platform
 
Joomunited social backlinks
Joomunited social backlinksJoomunited social backlinks
Joomunited social backlinks
 
Facebook Apps
Facebook AppsFacebook Apps
Facebook Apps
 
Creating a Facebook App
Creating a Facebook AppCreating a Facebook App
Creating a Facebook App
 
Interactive with-facebook
Interactive with-facebookInteractive with-facebook
Interactive with-facebook
 
Iskandar Najmuddin
Iskandar NajmuddinIskandar Najmuddin
Iskandar Najmuddin
 
Facebook APIs
Facebook APIsFacebook APIs
Facebook APIs
 
Php day 2011 - Interactive-with-facebook
Php day 2011 - Interactive-with-facebookPhp day 2011 - Interactive-with-facebook
Php day 2011 - Interactive-with-facebook
 
Firefox OS Apps
Firefox OS AppsFirefox OS Apps
Firefox OS Apps
 
Virtual Tech Days 2010 - Integrating Social Networks with ASP.NET
Virtual Tech Days 2010 - Integrating Social Networks with ASP.NETVirtual Tech Days 2010 - Integrating Social Networks with ASP.NET
Virtual Tech Days 2010 - Integrating Social Networks with ASP.NET
 
Creating a content managed facebook app
Creating a content managed facebook appCreating a content managed facebook app
Creating a content managed facebook app
 
[Code Camp] Ứng dụng Facebook API vào phát triển website
[Code Camp] Ứng dụng Facebook API vào phát triển website[Code Camp] Ứng dụng Facebook API vào phát triển website
[Code Camp] Ứng dụng Facebook API vào phát triển website
 
Facebook Apps
Facebook AppsFacebook Apps
Facebook Apps
 
Facebook Platform - Tech
Facebook Platform - TechFacebook Platform - Tech
Facebook Platform - Tech
 
Leveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook AppsLeveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook Apps
 
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
 
Facebook Python SDK - Introduction
Facebook Python SDK - IntroductionFacebook Python SDK - Introduction
Facebook Python SDK - Introduction
 
What's New on the Facebook Platform, August 2010
What's New on the Facebook Platform, August 2010What's New on the Facebook Platform, August 2010
What's New on the Facebook Platform, August 2010
 

Destacado

Release planning
Release planningRelease planning
Release planningAbhay Kumar
 
Release Planning. For Agile Teams. A Quick Overview
Release Planning. For Agile Teams. A Quick OverviewRelease Planning. For Agile Teams. A Quick Overview
Release Planning. For Agile Teams. A Quick OverviewMichael Benning
 
Release planning in Scrum
Release planning in ScrumRelease planning in Scrum
Release planning in ScrumArne Åhlander
 
ScrumGuides Agile Estimating And Planning With Scrum
ScrumGuides Agile Estimating And Planning With ScrumScrumGuides Agile Estimating And Planning With Scrum
ScrumGuides Agile Estimating And Planning With ScrumAlexey Krivitsky
 
How to motivate your team during Scrum?
How to motivate your team during Scrum?How to motivate your team during Scrum?
How to motivate your team during Scrum?Dimitri Honlet
 
Agile Estimating and Planning Using Scrum
Agile Estimating and Planning Using ScrumAgile Estimating and Planning Using Scrum
Agile Estimating and Planning Using ScrumTommy Norman
 
Marketing the Agile Way - Applying Scrum Outside of Develoment
Marketing the Agile Way - Applying Scrum Outside of DevelomentMarketing the Agile Way - Applying Scrum Outside of Develoment
Marketing the Agile Way - Applying Scrum Outside of DevelomentKirsten Knipp
 
Beginner's Guide to Agile Release Planning
Beginner's Guide to Agile Release PlanningBeginner's Guide to Agile Release Planning
Beginner's Guide to Agile Release PlanningPayton Consulting
 

Destacado (11)

Intro to Agile Practices and Values
Intro to Agile Practices and ValuesIntro to Agile Practices and Values
Intro to Agile Practices and Values
 
Release planning
Release planningRelease planning
Release planning
 
Release Planning. For Agile Teams. A Quick Overview
Release Planning. For Agile Teams. A Quick OverviewRelease Planning. For Agile Teams. A Quick Overview
Release Planning. For Agile Teams. A Quick Overview
 
Agile Release Planning
Agile Release PlanningAgile Release Planning
Agile Release Planning
 
Release planning in Scrum
Release planning in ScrumRelease planning in Scrum
Release planning in Scrum
 
ScrumGuides Agile Estimating And Planning With Scrum
ScrumGuides Agile Estimating And Planning With ScrumScrumGuides Agile Estimating And Planning With Scrum
ScrumGuides Agile Estimating And Planning With Scrum
 
How to motivate your team during Scrum?
How to motivate your team during Scrum?How to motivate your team during Scrum?
How to motivate your team during Scrum?
 
Agile Estimating and Planning Using Scrum
Agile Estimating and Planning Using ScrumAgile Estimating and Planning Using Scrum
Agile Estimating and Planning Using Scrum
 
Scrum@accenture
Scrum@accentureScrum@accenture
Scrum@accenture
 
Marketing the Agile Way - Applying Scrum Outside of Develoment
Marketing the Agile Way - Applying Scrum Outside of DevelomentMarketing the Agile Way - Applying Scrum Outside of Develoment
Marketing the Agile Way - Applying Scrum Outside of Develoment
 
Beginner's Guide to Agile Release Planning
Beginner's Guide to Agile Release PlanningBeginner's Guide to Agile Release Planning
Beginner's Guide to Agile Release Planning
 

Similar a How Facebook Apps Connect and Communicate Using APIs

Facebook 3rd Party Api
Facebook 3rd Party ApiFacebook 3rd Party Api
Facebook 3rd Party ApiYoss Cohen
 
Facebook plateform architecture presentation
Facebook plateform architecture   presentationFacebook plateform architecture   presentation
Facebook plateform architecture presentationInam Soomro
 
Facebook API
Facebook APIFacebook API
Facebook APIsnipermkd
 
Peepcode facebook-2-rails on facebook
Peepcode facebook-2-rails on facebookPeepcode facebook-2-rails on facebook
Peepcode facebook-2-rails on facebooksushilprajapati
 
Building an interactive timeline from facebook photos
Building an interactive timeline from facebook photosBuilding an interactive timeline from facebook photos
Building an interactive timeline from facebook photosRakesh Rajan
 
Facebook Connect Tutorial
Facebook Connect TutorialFacebook Connect Tutorial
Facebook Connect TutorialPrateek Dayal
 
Connect with Facebook to Rails Application By Nyros Developer
Connect with Facebook to Rails Application By Nyros DeveloperConnect with Facebook to Rails Application By Nyros Developer
Connect with Facebook to Rails Application By Nyros DeveloperNyros Technologies
 
Google App Engine and Social Apps
Google App Engine and Social AppsGoogle App Engine and Social Apps
Google App Engine and Social AppsChris Schalk
 
Introduction to Facebook Javascript SDK (NEW)
Introduction to Facebook Javascript SDK (NEW)Introduction to Facebook Javascript SDK (NEW)
Introduction to Facebook Javascript SDK (NEW)Colin Su
 
Case Study FourSquare and Facebook Search Mobile Application
Case Study FourSquare and Facebook Search Mobile ApplicationCase Study FourSquare and Facebook Search Mobile Application
Case Study FourSquare and Facebook Search Mobile ApplicationMike Taylor
 
Workshop : Facebook JavaScript SDK
Workshop : Facebook JavaScript SDKWorkshop : Facebook JavaScript SDK
Workshop : Facebook JavaScript SDKDimitar Danailov
 
Whats New On The Facebook Platform Feb 2010 Iskandar
Whats New On The Facebook Platform Feb  2010   IskandarWhats New On The Facebook Platform Feb  2010   Iskandar
Whats New On The Facebook Platform Feb 2010 IskandarNudge Social Media
 
Ikandar Najmuddin - "What's new?"
Ikandar Najmuddin - "What's new?"Ikandar Najmuddin - "What's new?"
Ikandar Najmuddin - "What's new?"iPlatform
 
Facebook Platform for Developers
Facebook Platform for DevelopersFacebook Platform for Developers
Facebook Platform for DevelopersLidan Hifi
 
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
 

Similar a How Facebook Apps Connect and Communicate Using APIs (20)

Facebook 3rd Party Api
Facebook 3rd Party ApiFacebook 3rd Party Api
Facebook 3rd Party Api
 
Facebook Coin
Facebook CoinFacebook Coin
Facebook Coin
 
Facebook plateform architecture presentation
Facebook plateform architecture   presentationFacebook plateform architecture   presentation
Facebook plateform architecture presentation
 
Facebook API
Facebook APIFacebook API
Facebook API
 
Peepcode facebook-2-rails on facebook
Peepcode facebook-2-rails on facebookPeepcode facebook-2-rails on facebook
Peepcode facebook-2-rails on facebook
 
Building an interactive timeline from facebook photos
Building an interactive timeline from facebook photosBuilding an interactive timeline from facebook photos
Building an interactive timeline from facebook photos
 
Facebook Connect Tutorial
Facebook Connect TutorialFacebook Connect Tutorial
Facebook Connect Tutorial
 
Facebook Coin
Facebook CoinFacebook Coin
Facebook Coin
 
Facebook_Coin
Facebook_CoinFacebook_Coin
Facebook_Coin
 
Facebook Coin
Facebook CoinFacebook Coin
Facebook Coin
 
Connect with Facebook to Rails Application By Nyros Developer
Connect with Facebook to Rails Application By Nyros DeveloperConnect with Facebook to Rails Application By Nyros Developer
Connect with Facebook to Rails Application By Nyros Developer
 
Developing Facebook Application
Developing Facebook ApplicationDeveloping Facebook Application
Developing Facebook Application
 
Google App Engine and Social Apps
Google App Engine and Social AppsGoogle App Engine and Social Apps
Google App Engine and Social Apps
 
Introduction to Facebook Javascript SDK (NEW)
Introduction to Facebook Javascript SDK (NEW)Introduction to Facebook Javascript SDK (NEW)
Introduction to Facebook Javascript SDK (NEW)
 
Case Study FourSquare and Facebook Search Mobile Application
Case Study FourSquare and Facebook Search Mobile ApplicationCase Study FourSquare and Facebook Search Mobile Application
Case Study FourSquare and Facebook Search Mobile Application
 
Workshop : Facebook JavaScript SDK
Workshop : Facebook JavaScript SDKWorkshop : Facebook JavaScript SDK
Workshop : Facebook JavaScript SDK
 
Whats New On The Facebook Platform Feb 2010 Iskandar
Whats New On The Facebook Platform Feb  2010   IskandarWhats New On The Facebook Platform Feb  2010   Iskandar
Whats New On The Facebook Platform Feb 2010 Iskandar
 
Ikandar Najmuddin - "What's new?"
Ikandar Najmuddin - "What's new?"Ikandar Najmuddin - "What's new?"
Ikandar Najmuddin - "What's new?"
 
Facebook Platform for Developers
Facebook Platform for DevelopersFacebook Platform for Developers
Facebook Platform for Developers
 
Introduction to facebook java script sdk
Introduction to facebook java script sdk Introduction to facebook java script sdk
Introduction to facebook java script sdk
 

Más de Alphageeks

Shayke's SCRUM @alphageeks 6
Shayke's SCRUM @alphageeks 6Shayke's SCRUM @alphageeks 6
Shayke's SCRUM @alphageeks 6Alphageeks
 
The secrets of developer happiness - Yuval Goldstein @ alphageeks 5
The secrets of developer happiness - Yuval Goldstein @ alphageeks 5The secrets of developer happiness - Yuval Goldstein @ alphageeks 5
The secrets of developer happiness - Yuval Goldstein @ alphageeks 5Alphageeks
 
Do You Write Secure Code? by Erez Metula
Do You Write Secure Code? by Erez MetulaDo You Write Secure Code? by Erez Metula
Do You Write Secure Code? by Erez MetulaAlphageeks
 
Alphageeks #4: Example Embedding By Ohad Barzilay
Alphageeks #4: Example Embedding By Ohad BarzilayAlphageeks #4: Example Embedding By Ohad Barzilay
Alphageeks #4: Example Embedding By Ohad BarzilayAlphageeks
 
Refael Ackermann @alphageeks on HTML5
Refael Ackermann @alphageeks on HTML5Refael Ackermann @alphageeks on HTML5
Refael Ackermann @alphageeks on HTML5Alphageeks
 
Afik Gal @alphageeks: Flex Intro
Afik Gal @alphageeks: Flex IntroAfik Gal @alphageeks: Flex Intro
Afik Gal @alphageeks: Flex IntroAlphageeks
 
Alphageeks meetup - Semantic Applications For Web
Alphageeks meetup - Semantic Applications For WebAlphageeks meetup - Semantic Applications For Web
Alphageeks meetup - Semantic Applications For WebAlphageeks
 

Más de Alphageeks (7)

Shayke's SCRUM @alphageeks 6
Shayke's SCRUM @alphageeks 6Shayke's SCRUM @alphageeks 6
Shayke's SCRUM @alphageeks 6
 
The secrets of developer happiness - Yuval Goldstein @ alphageeks 5
The secrets of developer happiness - Yuval Goldstein @ alphageeks 5The secrets of developer happiness - Yuval Goldstein @ alphageeks 5
The secrets of developer happiness - Yuval Goldstein @ alphageeks 5
 
Do You Write Secure Code? by Erez Metula
Do You Write Secure Code? by Erez MetulaDo You Write Secure Code? by Erez Metula
Do You Write Secure Code? by Erez Metula
 
Alphageeks #4: Example Embedding By Ohad Barzilay
Alphageeks #4: Example Embedding By Ohad BarzilayAlphageeks #4: Example Embedding By Ohad Barzilay
Alphageeks #4: Example Embedding By Ohad Barzilay
 
Refael Ackermann @alphageeks on HTML5
Refael Ackermann @alphageeks on HTML5Refael Ackermann @alphageeks on HTML5
Refael Ackermann @alphageeks on HTML5
 
Afik Gal @alphageeks: Flex Intro
Afik Gal @alphageeks: Flex IntroAfik Gal @alphageeks: Flex Intro
Afik Gal @alphageeks: Flex Intro
 
Alphageeks meetup - Semantic Applications For Web
Alphageeks meetup - Semantic Applications For WebAlphageeks meetup - Semantic Applications For Web
Alphageeks meetup - Semantic Applications For Web
 

Último

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 

Último (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 

How Facebook Apps Connect and Communicate Using APIs

  • 1. Facebook and OpenSocial Development Liran.zelkha@alunasoft.com
  • 2. Aluna  Israel’s leading Java/JavaEE and SOA consulting company  Customers:
  • 3. How Facebook Apps work  Every profile page is made up of many independent portlets or profile boxes.  Each portlet is generated statically by a possibly external application and stored by Facebook.  It could be an iframe, but in most cases is not.  Portlets are not actually changed in the profile page – they are changed elsewhere!  Facebook has mechanisms to link in applications, and APIs for applications to communicate with Facebook.
  • 4. Facebook Communication request for profile profile request for canvas request for canvas content Facebook API use update profile box, etc. canvas canvas user facebook.com application (UCT)
  • 5. What can the API do  Get a list of friend ids or friends who are running the same app  Get and set notifications of events  Set content of profile box  Get specific information on a user  Add to the Newsfeed for a user  Etc.
  • 6. Client Libraries  Client libraries will simplify the calls to the platform by reducing the amount of code you have to write.  If you don’t use a client library then will have to do the following for each method call: ◦ Construct a signature ◦ Create and send a HTTP POST request ◦ Parse the XML result of the request
  • 7. Example Clients  Facebook Clients ◦ PHP5 ◦ Java  Independent Clients ◦ ActionScript ◦ Cocoa ◦ PHP4 ◦ Ruby ◦ Python ◦ VB.NET
  • 8. Methods  The facebook API currently has 20 methods that can be used to get information from facebook accounts.
  • 9. Authentication  facebook.auth.createToken ◦ creates an auth_token to be passed in as a parameter to login.php  facebook.auth.getSession ◦ returns the session key bound to an auth_token
  • 10. Facebook Query Language  Facebook.fql.query ◦ FQL is a way to query the same facebook data you can access through the other API functions, but with a SQL style interface. ◦ SELECT name, affiliations FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=211031) AND "Facebook" IN affiliations.name AND uid < 10
  • 11. Events  facebook.events.get ◦ returns all visible events according to the filters specified  facebook.events.getMembers ◦ returns membership list data associated with an event
  • 12. Friends  facebook.friends.areFriends ◦ returns whether or not each pair of specified users is friends with each other  facebook.friends.get ◦ returns the identifiers of the current user’s Facebook friends  facebook.friends.getAppUsers ◦ returns the identifiers of the current user’s Facebook friends who are currently signed in
  • 13. Groups  facebook.groups.get ◦ returns all visible groups according to the filters specified  facebook.groups.getMembers ◦ returns membership list data associated with a group
  • 14. Notifications  facebook.notifications.get ◦ returns information on outstanding Facebook notifications for current session user. ◦ such as messages, friend requests, pokes, group invites and event invites
  • 15. Photos  facebook.photos.addTag ◦ adds a tag with the given information to a photo  facebook.photos.createAlbum ◦ creates and returns a new album owned by the current session user  facebook.photos.get ◦ returns all visible photos according to the filters specified
  • 16. Photos  facebook.photos.getAlbums ◦ returns metadata about all of the photo albums uploaded by the specified user  facebook.photos.getTags ◦ returns the set of user tags on all photos specified  facebook.photos.upload ◦ uploads a photo owned by the current session user and returns the new photo
  • 17. Users  facebook.users.getInfo ◦ returns the information in a users profile  facebook.users.getLoggedInUser ◦ gets the user id associated with the current session
  • 18. Responses  Each of these methods can have a different response format depending on what you are programming in. ◦ JSON (JavaScript Object Notation) ◦ XML ◦ Facebook PHP Client
  • 19. FBML  Language used by Facebook to specify any fragment of Web pages.  Mostly just like HTML!  Forms get additional fields added to pass Facebook parameters silently.  Images are redirected to local copies.  Links must be absolute (parameters do not work as expected in all toolkits).  Lots of additional Facebook-specific items ◦ <fb:name uid=…> for a user’s name ◦ <fb:profile-pic …> for a user’s profile picture
  • 20. FQL  Facebook Query Language allows access to user database with language that is similar to SQL.  Example: ◦ SELECT first_name FROM user WHERE uid=$params->{user} ◦ To get the first name of a user based on the user-id
  • 21. Creating an Application  What you need: ◦ Web Server ◦ API toolkit or roll-your-own  Add the Developer application to your profile.  Switch to the Developer application.  Apply for a key.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. What does a typical application do?  Check CGI parameters.  Authenticate using Facebook API.  Draw configuration Web page on canvas.  Allow user to update options …  Write FBML to profile box.  Save per-user state in database or in filesystem.
  • 30. What problem does it try to solve?  Writing applications specifically for a single API
  • 31.
  • 32. Why?  Developers  Site Owners ◦ Can reuse apps on ◦ New site new social networks immediately gains ◦ Reduce code many applications maintenance ◦ Pre-existing broad ◦ Increased potential developer base audience for application