Google Devfest 2009 Argentina - Google and the Social Web

56

description

Google Devfest 2009 Argentina - Google and the Social Web

Transcript of Google Devfest 2009 Argentina - Google and the Social Web

Page 1: Google Devfest 2009 Argentina - Google and the Social Web
Page 2: Google Devfest 2009 Argentina - Google and the Social Web

Google and the social Web Patrick Chanezon @chanezon Google Mauro Gonzalez @gmaurol Globant 11/16/09 Post your questions for this talk on Twitter #devfest09 #opensocial

Page 3: Google Devfest 2009 Argentina - Google and the Social Web

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

Page 4: Google Devfest 2009 Argentina - Google and the Social Web

4

Clock

Page 5: Google Devfest 2009 Argentina - Google and the Social Web

5

Movies

Page 6: Google Devfest 2009 Argentina - Google and the Social Web

6

Stocks

Page 7: Google Devfest 2009 Argentina - Google and the Social Web

Google is Better When it’s Social

Page 8: Google Devfest 2009 Argentina - Google and the Social Web

8

Collaboration is social

Google Docs

Page 9: Google Devfest 2009 Argentina - Google and the Social Web

9

Sharing is social

Google Reader

Page 10: Google Devfest 2009 Argentina - Google and the Social Web

10

Communication is social

Google Groups, Google Talk, Gmail

Page 11: Google Devfest 2009 Argentina - Google and the Social Web

11

Updates are social

YouTube

Page 12: Google Devfest 2009 Argentina - Google and the Social Web

Implicit Social Graphs

Page 13: Google Devfest 2009 Argentina - Google and the Social Web

13

Google Contacts – Contacts lets users manage relationships

Page 14: Google Devfest 2009 Argentina - Google and the Social Web

14

Profiles –  Let users create a persona

– Public image on the web

– Available in search

Page 15: Google Devfest 2009 Argentina - Google and the Social Web

15

More users

Increased usage

More revenue

What's Google Getting with Social?

• Richer web apps

Page 16: Google Devfest 2009 Argentina - Google and the Social Web

16

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 17: Google Devfest 2009 Argentina - Google and the Social Web

How Developers Benefit

Page 18: Google Devfest 2009 Argentina - Google and the Social Web

18

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 19: Google Devfest 2009 Argentina - Google and the Social Web

19

OpenSocial

– Common APIs for accessing social data •  People

•  Activities

•  App Data

–  JavaScript, REST, and RPC implementations

– Newest version, 0.9, just released

Page 20: Google Devfest 2009 Argentina - Google and the Social Web

20

Supporting products

OpenSocial

Page 21: Google Devfest 2009 Argentina - Google and the Social Web

21

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 22: Google Devfest 2009 Argentina - Google and the Social Web

22

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 23: Google Devfest 2009 Argentina - Google and the Social Web

23

Back to OpenSocial…

Page 24: Google Devfest 2009 Argentina - Google and the Social Web

24

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 25: Google Devfest 2009 Argentina - Google and the Social Web

25

OpenSocial iGoogle

– Provides 'home' and 'canvas' views

–  requestShareApp and Updates for organic growth

Page 26: Google Devfest 2009 Argentina - Google and the Social Web

26

OpenSocial

Gmail

– Provides 'nav' and 'canvas' views

– Enabled as a Gmail Labs feature

Page 27: Google Devfest 2009 Argentina - Google and the Social Web

27

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 28: Google Devfest 2009 Argentina - Google and the Social Web

28

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 29: Google Devfest 2009 Argentina - Google and the Social Web

29

Leverage social graph

Quick data entry

Dashboard view

Container-specific extensions

Container Cheat Sheet

Page 30: Google Devfest 2009 Argentina - Google and the Social Web

30

Quartermile: An Example Gadget

Page 31: Google Devfest 2009 Argentina - Google and the Social Web

Quartermile: An Example Gadget

Page 32: Google Devfest 2009 Argentina - Google and the Social Web

32

Gadget overview

Quartermile

–  Track exercise with others

– View stats

– Quick, "smart" data entry box

– Google App Engine backend

Page 33: Google Devfest 2009 Argentina - Google and the Social Web

33

Architecture

Signed request

JSON

Quartermile

Page 34: Google Devfest 2009 Argentina - Google and the Social Web

34

Designing for iGoogle

Leverage social graph

Quick data entry

Dashboard view

Container-specific extensions

Quartermile

Page 35: Google Devfest 2009 Argentina - Google and the Social Web

35

Joining a team Quartermile

–  Load VIEWER_FRIENDS

– Send result to backend

– Return set of "interesting" teams

Page 36: Google Devfest 2009 Argentina - Google and the Social Web

36

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 37: Google Devfest 2009 Argentina - Google and the Social Web

37

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 38: Google Devfest 2009 Argentina - Google and the Social Web

38

// ['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 39: Google Devfest 2009 Argentina - Google and the Social Web

39

// 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 40: Google Devfest 2009 Argentina - Google and the Social Web

40

//[{'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 41: Google Devfest 2009 Argentina - Google and the Social Web

41

Designing for Gmail

Leverage social graph

Quick data entry

Dashboard view

Container-specific extensions

Quartermile

Page 42: Google Devfest 2009 Argentina - Google and the Social Web

42

Recording an exercise Quartermile

– User enters an activity

– Gadget sends request to server

– Response is rendered in the activity list

Page 43: Google Devfest 2009 Argentina - Google and the Social Web

43

// '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 44: Google Devfest 2009 Argentina - Google and the Social Web

44

Designing for Gmail part two

Leverage social graph

Quick data entry

Dashboard view

Container-specific extensions

Quartermile

Page 45: Google Devfest 2009 Argentina - Google and the Social Web

45

Displaying a dashboard Quartermile

Page 46: Google Devfest 2009 Argentina - Google and the Social Web

46

gadgets.views.requestNavigateTo('canvas');

Navigating to the canvas view (client)

Quartermile

Page 47: Google Devfest 2009 Argentina - Google and the Social Web

47

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 48: Google Devfest 2009 Argentina - Google and the Social Web

48

Designing for Calendar

Leverage social graph

Quick data entry

Dashboard view

Container-specific extensions

Quartermile

Page 49: Google Devfest 2009 Argentina - Google and the Social Web

49

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 50: Google Devfest 2009 Argentina - Google and the Social Web

50

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 51: Google Devfest 2009 Argentina - Google and the Social Web

51

Finished gadget

Quartermile

Leverage social graph

Quick data entry

Dashboard view

✓ Container-specific extensions

Page 52: Google Devfest 2009 Argentina - Google and the Social Web

52

Getting users

Quarter Mile

– Submit to container directory

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

– Cross promote

– Advertise

Page 53: Google Devfest 2009 Argentina - Google and the Social Web

53

Out to the Social Web

Page 54: Google Devfest 2009 Argentina - Google and the Social Web

54

Signed request

JSON

Out to the Social Web

Page 55: Google Devfest 2009 Argentina - Google and the Social Web

Google Friend Connect Integrations

• Wordpress

• Drupal

55

Page 56: Google Devfest 2009 Argentina - Google and the Social Web

Q & A