Top Banner
Google and the Social Web Chris Schalk & Patrick Chanezon June 29, 2009
55

Google Developer Days Brazil 2009 - Google Social Web

Nov 22, 2014

Download

Technology

slides for Brazil GDD 2009 social web talk, from Chris Schalk
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Google Developer Days Brazil 2009 -  Google Social Web

Google and the Social Web Chris Schalk & Patrick Chanezon June 29, 2009

Page 2: Google Developer Days Brazil 2009 -  Google Social Web

“The web is better when it's social.” David Glazer, Google Engineering Director

Page 3: Google Developer Days Brazil 2009 -  Google Social Web

3

Clock

Page 4: Google Developer Days Brazil 2009 -  Google Social Web

4

Movies

Page 5: Google Developer Days Brazil 2009 -  Google Social Web

5

Stocks

Page 6: Google Developer Days Brazil 2009 -  Google Social Web

Google is Better When it’s Social

Page 7: Google Developer Days Brazil 2009 -  Google Social Web

7

Collaboration is social

Google Docs

Page 8: Google Developer Days Brazil 2009 -  Google Social Web

8

Sharing is social

Google Reader

Page 9: Google Developer Days Brazil 2009 -  Google Social Web

9

Communication is social

Google Groups, Google Talk, Gmail

Page 10: Google Developer Days Brazil 2009 -  Google Social Web

10

Updates are social

YouTube

Page 11: Google Developer Days Brazil 2009 -  Google Social Web

Implicit Social Graphs

Page 12: Google Developer Days Brazil 2009 -  Google Social Web

12

Google Contacts – Contacts lets users manage relationships

Page 13: Google Developer Days Brazil 2009 -  Google Social Web

13

Profiles –  Let users create a persona

– Public image on the web

– Available in search

Page 14: Google Developer Days Brazil 2009 -  Google Social Web

14

More users

Increased usage

More revenue

What's Google Getting with Social?

• Richer web apps

Page 15: Google Developer Days Brazil 2009 -  Google Social Web

15

Use the same approach

The result is more powerful, more useful applications

Recommendations for the Social Web

–  Interact with your friends where you are and where they are

– Don't lock users into a single site

–  Take advantage of implicit social graphs

Page 16: Google Developer Days Brazil 2009 -  Google Social Web

How Developers Benefit

Page 17: Google Developer Days Brazil 2009 -  Google Social Web

17

How Developers Benefit

– Use Google's social graph •  In your own apps

•  To integrate with our apps

•  To add features to our apps

– Several technologies to accomplish these goals…

Page 18: Google Developer Days Brazil 2009 -  Google Social Web

18

OpenSocial

– Common APIs for accessing social data •  People

•  Activities

•  App Data

–  JavaScript, REST, and RPC implementations

– Newest version, 0.9, just released

Page 19: Google Developer Days Brazil 2009 -  Google Social Web

19

Supporting products

OpenSocial

Page 20: Google Developer Days Brazil 2009 -  Google Social Web

20

Portable Contacts –  The coolest technology without a logo

–  Fully compatible with opensocial.Person API

– Pulls the user's social graph into a 3rd party site (with the user's permission)

Page 21: Google Developer Days Brazil 2009 -  Google Social Web

21

Google Friend Connect – Uses OpenSocial (gadgets, REST/RPC)

– Allows site owners to mix in social data to existing sites

– Cut and paste or

– Deep integrations

Page 22: Google Developer Days Brazil 2009 -  Google Social Web

22

Back to OpenSocial…

Page 23: Google Developer Days Brazil 2009 -  Google Social Web

23

What They Have in Common

– Millions of users with a shared focus and demands

– Common social graph and social data •  Uses the 'Friends' group in Contacts

•  App data is shared between app instances

•  The same endpoint is used for the REST/RPC protocols

Page 24: Google Developer Days Brazil 2009 -  Google Social Web

24

OpenSocial iGoogle

– Provides 'home' and 'canvas' views

–  requestShareApp and Updates for organic growth

Page 25: Google Developer Days Brazil 2009 -  Google Social Web

25

OpenSocial

Gmail

– Provides 'nav' and 'canvas' views

– Enabled as a Gmail Labs feature

Page 26: Google Developer Days Brazil 2009 -  Google Social Web

26

OpenSocial Google Calendar

– Early preview

– Provides 'nav' and 'canvas' views

–  Includes google.calendar API extensions, eg: •  google.calendar.showEvent

•  google.calendar.subscribeToDates

•  google.calendar.getUserEvents

Page 27: Google Developer Days Brazil 2009 -  Google Social Web

27

OpenSocial Google Calendar

– Gadgets are all about making Calendar extensible

– Bringing apps into Calendar

– Private whitelist for now, open to developers in the near future

– Check out the Developer Sandbox at I/O for a closer look at more details

Page 28: Google Developer Days Brazil 2009 -  Google Social Web

28

Leverage social graph

Quick data entry

Dashboard view

Container-specific extensions

Container Cheat Sheet

Page 29: Google Developer Days Brazil 2009 -  Google Social Web

29

Quartermile: An Example Gadget

Page 30: Google Developer Days Brazil 2009 -  Google Social Web

Quartermile: An Example Gadget

Page 31: Google Developer Days Brazil 2009 -  Google Social Web

31

Gadget overview

Quartermile

–  Track exercise with others

– View stats

– Quick, "smart" data entry box

– Google App Engine backend

Page 32: Google Developer Days Brazil 2009 -  Google Social Web

32

Architecture

Signed request

JSON

Quartermile

Page 33: Google Developer Days Brazil 2009 -  Google Social Web

33

Designing for iGoogle

Leverage social graph

Quick data entry

Dashboard view

Container-specific extensions

Quartermile

Page 34: Google Developer Days Brazil 2009 -  Google Social Web

34

Joining a team Quartermile

–  Load VIEWER_FRIENDS

– Send result to backend

– Return set of "interesting" teams

Page 35: Google Developer Days Brazil 2009 -  Google Social Web

35

var batch = osapi.newBatch(). add('viewer', osapi.people.getViewer()). add('friends', osapi.people.get({ userId: '@viewer', groupId: '@friends' })); batch.execute(callback);

Retrieving friends (client) Quartermile

Page 36: Google Developer Days Brazil 2009 -  Google Social Web

36

var req = opensocial.newDataRequest(); req.add(req.newFetchPersonRequest('VIEWER'), 'viewer'); var friends = opensocial.newIdSpec({ 'userId':'VIEWER', 'groupId':'FRIENDS' }); req.add(req.newFetchPeopleRequest(friends), 'friends'); req.send(callback);

Retrieving friends (compared with 0.8)

Quartermile

Page 37: Google Developer Days Brazil 2009 -  Google Social Web

37

// ['2001', '2003', '3000'] function getInterestingTeams(ids) { var request = { 'method':'get_interesting_teams', 'data':ids }; osapi.http.post(SERVER, { body: gadgets.json.stringify(request) }). execute(displayTeams); }

Getting a team list (client) Quartermile

Page 38: Google Developer Days Brazil 2009 -  Google Social Web

38

// team_ids = [2001, 2003, 3000]

teams = model_get_by_id(models.Team, team_ids)

gql = models.Team.gql("ORDER BY count DESC") interesting_teams = gql.fetch(Settings.MAX_INTERESTING_TEAMS)

return teams + interesting_teams

Getting a team list (server) Quartermile

Page 39: Google Developer Days Brazil 2009 -  Google Social Web

39

//[{'team_id':2001, 'team_name':'Fitness Nuts'}, // {'team_id':2003, 'team_name':'Code Runners'}]

function displayTeams(data) { var teams = data.teams; for (i in teams) { $('#interesting').append(jQuery('<li>' + teams[i].team_name + '</li>'); } }

Displaying the list of teams (client) Quarter Mile

Page 40: Google Developer Days Brazil 2009 -  Google Social Web

40

Designing for Gmail

Leverage social graph

Quick data entry

Dashboard view

Container-specific extensions

Quartermile

Page 41: Google Developer Days Brazil 2009 -  Google Social Web

41

Recording an exercise Quartermile

– User enters an activity

– Gadget sends request to server

– Response is rendered in the activity list

Page 42: Google Developer Days Brazil 2009 -  Google Social Web

42

// 'walked 1 mile' function saveExercise(text) { var request = { 'method':'create_activity', 'data':text }; osapi.http.post(SERVER, { body: gadgets.json.stringify(request) }). execute(updateExercises); }

Recording an exercise (client) Quartermile

Page 43: Google Developer Days Brazil 2009 -  Google Social Web

43

Designing for Gmail part two

Leverage social graph

Quick data entry

Dashboard view

Container-specific extensions

Quartermile

Page 44: Google Developer Days Brazil 2009 -  Google Social Web

44

Displaying a dashboard Quartermile

Page 45: Google Developer Days Brazil 2009 -  Google Social Web

45

gadgets.views.requestNavigateTo('canvas');

Navigating to the canvas view (client)

Quartermile

Page 46: Google Developer Days Brazil 2009 -  Google Social Web

46

var table = new google.visualization.DataTable(); table.addColumn('string', 'Timestamp'); for (i in data.accounts) { ... } var chart = new google.visualization.ColumnChart( document.getElementById('dash_chart')); chart.draw(table, {isStacked:true, width:600, height:400, legend:'bottom'});

Rendering charts (client) Quartermile

Page 47: Google Developer Days Brazil 2009 -  Google Social Web

47

Designing for Calendar

Leverage social graph

Quick data entry

Dashboard view

Container-specific extensions

Quartermile

Page 48: Google Developer Days Brazil 2009 -  Google Social Web

48

Viewing a slice of data Quartermile

– User loads Calendar

– User switches between dates or daily, weekly, or monthly view

–  List of activities updates based on the current view range

Page 49: Google Developer Days Brazil 2009 -  Google Social Web

49

function changeDateView(dateRange) { var startTime = dateRange.startTime; var endTime = dateRange.endTime;

updateRange(startTime, endTime); }

google.calendar.subscribeToDates(changeDateView);

Quartermile

Specifying a date callback (client)

Page 50: Google Developer Days Brazil 2009 -  Google Social Web

50

Finished gadget

Quartermile

Leverage social graph

Quick data entry

Dashboard view

✓ Container-specific extensions

Page 51: Google Developer Days Brazil 2009 -  Google Social Web

51

Getting users

Quarter Mile

– Submit to container directory

– Use available API calls for organic growth •  requestShareApp, Updates

– Cross promote

– Advertise

Page 52: Google Developer Days Brazil 2009 -  Google Social Web

52

Out to the Social Web

Page 53: Google Developer Days Brazil 2009 -  Google Social Web

53

Signed request

JSON

Out to the Social Web

Page 54: Google Developer Days Brazil 2009 -  Google Social Web

Q & A

Page 55: Google Developer Days Brazil 2009 -  Google Social Web