SlideShare une entreprise Scribd logo
1  sur  13
Upcoming OpenSocial Features
New OpenSocial APIs on orkut.com




Shishir Birmiwal
Software Engineer



                                   Google Confidential and Proprietary   1
Recent Developments


• OpenSocial 0.8 launched on orkut
• REST/RPC on orkut
• Clients for RPC/REST [java, php, python, ruby]
     http://code.google.com/p/opensocial-java/client/
• Spec for 0.9 frozen
     http://sites.google.com/site/opensocialdraft/Home




                                                         Google Confidential and Proprietary
Albums API
access user's photos on orkut




                                Google Confidential and Proprietary   3
Albums API


• Standardized in OpenSocial 0.9 spec
• Allows an app to create, delete, get and update albums and photos
• APIs for access using REST, RPC and JS




                                                     Google Confidential and Proprietary
Albums API


opensocial.MediaItem extended
    represents a photo (or video) on orkut
    Title, description, thumbnailUrl, albumId.. added

opensocial.Album introduced
    represents a collection of MediaItems
    has title, description, thumbnailUrl, ownerId, etc.




                                                           Google Confidential and Proprietary
Albums API: JS


opensocial.newFetchAlbumsRequest(idSpec, opt_params)
     fetches albums for a user
     opt_params to specify a particular album or for paging
opensocial.newFetchMediaItemsRequest(idSpec, albumId, opt_params)
     fetches mediaitems in an album for a user
     opt_params to specify particular mediaitems or for paging
opensocial.newCreateAlbumRequest() - create an album
opensocial.newUpdateAlbumRequest() - update an album
opensocial.newDeleteAlbumRequest() - delete an album


similarly for MediaItems

                                                       Google Confidential and Proprietary
Albums API: JS


req = opensocial.newDataRequest();
req.add(req.newFetchAlbumsRequest(idspec, params), 'albums');
req.send(processAlbums);


function processAlbums(data) {
    var albums = data.get('albums').getData();
    albums.each(function(album) {
     output(album.getField(opensocial.Album.Field.ID));
     output(album.getField(opensocial.Album.Field.CAPTION));
     output(album.getField(opensocial.Album.Field.THUMBNAIL_URL));
    });
}

                                                               Google Confidential and Proprietary
Albums API: REST and RPC


REST base: /social/rest/
• /albums/{userId}/{groupId}/{albumId}
• /mediaitems/{userId}/{groupId}/{albumId}/{mediaItemId}

RPC endpoint: /social/rpc
• methods: albums.create, albums.delete, albums.get and albums.update;
  similarly for media items: mediaitems.create, mediaitems.delete,
  mediaitems.get and mediaitems.update




                                                           Google Confidential and Proprietary
REST and RPC
reverse phone home




                     Google Confidential and Proprietary   9
REST and RPC


REST and RPC services now available on orkut
• backend servers can initiate actions on orkut
• backend servers authenticate using OAuth
• visit http://google.com/directory/gadgets/verify to get consumer key and secret
  for OAuth parameter signing
• open-source client libraries available on Google code
     php, python, java and ruby clients




                                                              Google Confidential and Proprietary
Reverse Phone Home using OAuth




                                 Google Confidential and Proprietary
Demo time
• RPC / REST on the command line
• OpenSocial client libraries
• A gadget that shows your photos




                                    Google Confidential and Proprietary   12
Thank You!
make your app more engaging




                              Google Confidential and Proprietary   13

Contenu connexe

Similaire à Upcoming OpenSocial Features: New APIs for Albums and Reverse Phone Home

EdTechJoker Spring 2020 - Lecture 8 Drupal again
EdTechJoker Spring 2020 - Lecture 8 Drupal againEdTechJoker Spring 2020 - Lecture 8 Drupal again
EdTechJoker Spring 2020 - Lecture 8 Drupal againBryan Ollendyke
 
OpenSocial CyWorld Dev.Square presentation Sep 09
OpenSocial CyWorld Dev.Square presentation Sep 09OpenSocial CyWorld Dev.Square presentation Sep 09
OpenSocial CyWorld Dev.Square presentation Sep 09Chris Schalk
 
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social UpdateGoodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social UpdatePatrick Chanezon
 
Google Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocialGoogle Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocialPatrick Chanezon
 
OpenSocial Intro
OpenSocial IntroOpenSocial Intro
OpenSocial IntroPamela Fox
 
SP Rest API Documentation
SP Rest API DocumentationSP Rest API Documentation
SP Rest API DocumentationIT Industry
 
Eye em api_intro
Eye em api_introEye em api_intro
Eye em api_introEyeEm
 
MySpace Open Platform enhancements with OpenSocial 0.9
MySpace Open Platform enhancements with OpenSocial 0.9MySpace Open Platform enhancements with OpenSocial 0.9
MySpace Open Platform enhancements with OpenSocial 0.9MySpaceDevTeam
 
Audio Analysis with Spotify's Web API
Audio Analysis with Spotify's Web APIAudio Analysis with Spotify's Web API
Audio Analysis with Spotify's Web APIMark Koh
 
Foundations of a Social Application Platform
Foundations of a Social Application PlatformFoundations of a Social Application Platform
Foundations of a Social Application PlatformJonathan LeBlanc
 
Ajaxworld Opensocial Presentation
Ajaxworld Opensocial PresentationAjaxworld Opensocial Presentation
Ajaxworld Opensocial PresentationChris Schalk
 
Goodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdateGoodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdatePatrick Chanezon
 
Integrating Google APIs into Your Applications
Integrating Google APIs into Your ApplicationsIntegrating Google APIs into Your Applications
Integrating Google APIs into Your ApplicationsChris Schalk
 
Experiments in Data Portability 2
Experiments in Data Portability 2Experiments in Data Portability 2
Experiments in Data Portability 2Glenn Jones
 
API Workshop: Deep dive into REST APIs
API Workshop: Deep dive into REST APIsAPI Workshop: Deep dive into REST APIs
API Workshop: Deep dive into REST APIsTom Johnson
 
Pb developer api_guide
Pb developer api_guidePb developer api_guide
Pb developer api_guidefntest001
 
Open social & cmis oasistc-20100712
Open social & cmis   oasistc-20100712Open social & cmis   oasistc-20100712
Open social & cmis oasistc-20100712weitzelm
 

Similaire à Upcoming OpenSocial Features: New APIs for Albums and Reverse Phone Home (20)

EdTechJoker Spring 2020 - Lecture 8 Drupal again
EdTechJoker Spring 2020 - Lecture 8 Drupal againEdTechJoker Spring 2020 - Lecture 8 Drupal again
EdTechJoker Spring 2020 - Lecture 8 Drupal again
 
OpenSocial CyWorld Dev.Square presentation Sep 09
OpenSocial CyWorld Dev.Square presentation Sep 09OpenSocial CyWorld Dev.Square presentation Sep 09
OpenSocial CyWorld Dev.Square presentation Sep 09
 
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social UpdateGoodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
 
Google Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocialGoogle Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocial
 
OpenSocial Intro
OpenSocial IntroOpenSocial Intro
OpenSocial Intro
 
SP Rest API Documentation
SP Rest API DocumentationSP Rest API Documentation
SP Rest API Documentation
 
Eye em api_intro
Eye em api_introEye em api_intro
Eye em api_intro
 
MySpace Open Platform enhancements with OpenSocial 0.9
MySpace Open Platform enhancements with OpenSocial 0.9MySpace Open Platform enhancements with OpenSocial 0.9
MySpace Open Platform enhancements with OpenSocial 0.9
 
Audio Analysis with Spotify's Web API
Audio Analysis with Spotify's Web APIAudio Analysis with Spotify's Web API
Audio Analysis with Spotify's Web API
 
Foundations of a Social Application Platform
Foundations of a Social Application PlatformFoundations of a Social Application Platform
Foundations of a Social Application Platform
 
Ajaxworld Opensocial Presentation
Ajaxworld Opensocial PresentationAjaxworld Opensocial Presentation
Ajaxworld Opensocial Presentation
 
Goodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdateGoodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social Update
 
Integrating Google APIs into Your Applications
Integrating Google APIs into Your ApplicationsIntegrating Google APIs into Your Applications
Integrating Google APIs into Your Applications
 
Experiments in Data Portability 2
Experiments in Data Portability 2Experiments in Data Portability 2
Experiments in Data Portability 2
 
OpenSocial
OpenSocialOpenSocial
OpenSocial
 
API Workshop: Deep dive into REST APIs
API Workshop: Deep dive into REST APIsAPI Workshop: Deep dive into REST APIs
API Workshop: Deep dive into REST APIs
 
Pb developer api_guide
Pb developer api_guidePb developer api_guide
Pb developer api_guide
 
Open social & cmis oasistc-20100712
Open social & cmis   oasistc-20100712Open social & cmis   oasistc-20100712
Open social & cmis oasistc-20100712
 
Open social
Open socialOpen social
Open social
 
oEmbed (on rails)
oEmbed (on rails)oEmbed (on rails)
oEmbed (on rails)
 

Dernier

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 

Dernier (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 

Upcoming OpenSocial Features: New APIs for Albums and Reverse Phone Home

  • 1. Upcoming OpenSocial Features New OpenSocial APIs on orkut.com Shishir Birmiwal Software Engineer Google Confidential and Proprietary 1
  • 2. Recent Developments • OpenSocial 0.8 launched on orkut • REST/RPC on orkut • Clients for RPC/REST [java, php, python, ruby]  http://code.google.com/p/opensocial-java/client/ • Spec for 0.9 frozen  http://sites.google.com/site/opensocialdraft/Home Google Confidential and Proprietary
  • 3. Albums API access user's photos on orkut Google Confidential and Proprietary 3
  • 4. Albums API • Standardized in OpenSocial 0.9 spec • Allows an app to create, delete, get and update albums and photos • APIs for access using REST, RPC and JS Google Confidential and Proprietary
  • 5. Albums API opensocial.MediaItem extended  represents a photo (or video) on orkut  Title, description, thumbnailUrl, albumId.. added opensocial.Album introduced  represents a collection of MediaItems  has title, description, thumbnailUrl, ownerId, etc. Google Confidential and Proprietary
  • 6. Albums API: JS opensocial.newFetchAlbumsRequest(idSpec, opt_params)  fetches albums for a user  opt_params to specify a particular album or for paging opensocial.newFetchMediaItemsRequest(idSpec, albumId, opt_params)  fetches mediaitems in an album for a user  opt_params to specify particular mediaitems or for paging opensocial.newCreateAlbumRequest() - create an album opensocial.newUpdateAlbumRequest() - update an album opensocial.newDeleteAlbumRequest() - delete an album similarly for MediaItems Google Confidential and Proprietary
  • 7. Albums API: JS req = opensocial.newDataRequest(); req.add(req.newFetchAlbumsRequest(idspec, params), 'albums'); req.send(processAlbums); function processAlbums(data) { var albums = data.get('albums').getData(); albums.each(function(album) { output(album.getField(opensocial.Album.Field.ID)); output(album.getField(opensocial.Album.Field.CAPTION)); output(album.getField(opensocial.Album.Field.THUMBNAIL_URL)); }); } Google Confidential and Proprietary
  • 8. Albums API: REST and RPC REST base: /social/rest/ • /albums/{userId}/{groupId}/{albumId} • /mediaitems/{userId}/{groupId}/{albumId}/{mediaItemId} RPC endpoint: /social/rpc • methods: albums.create, albums.delete, albums.get and albums.update; similarly for media items: mediaitems.create, mediaitems.delete, mediaitems.get and mediaitems.update Google Confidential and Proprietary
  • 9. REST and RPC reverse phone home Google Confidential and Proprietary 9
  • 10. REST and RPC REST and RPC services now available on orkut • backend servers can initiate actions on orkut • backend servers authenticate using OAuth • visit http://google.com/directory/gadgets/verify to get consumer key and secret for OAuth parameter signing • open-source client libraries available on Google code  php, python, java and ruby clients Google Confidential and Proprietary
  • 11. Reverse Phone Home using OAuth Google Confidential and Proprietary
  • 12. Demo time • RPC / REST on the command line • OpenSocial client libraries • A gadget that shows your photos Google Confidential and Proprietary 12
  • 13. Thank You! make your app more engaging Google Confidential and Proprietary 13