Friday, July 9, 2010
The Google Buzz API and You
                  Google DevFest Manila, July 5th 2010




Friday, July 9, 2010
Hello
                       Timothy Jordan
                       Developer Advocate, Google

                       buzz...
Hello
                       Bob Aman
                       Developer Programs Engineer, Google

                       b...
This talk

          • Google Buzz & The Conversational Web

          • Open Standards

          • Google Buzz API

    ...
Google Buzz
                  ...and the conversational web




Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Open Standards
                  ...are a really good thing




Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Google Buzz API




Friday, July 9, 2010
Warning!




Friday, July 9, 2010
https://www.googleapis.com/buzz/v1/




Friday, July 9, 2010
https://www.googleapis.com/buzz/v1/



                       https://code.google.com/apis/buzz/docs/




Friday, July 9, ...
https://www.googleapis.com/buzz/v1/



                       http://code.google.com/p/oacurl/




Friday, July 9, 2010
https://www.googleapis.com/buzz/v1/


                       http://code.google.com/p/buzz-php-client/

                 h...
https://www.googleapis.com/buzz/v1/

   alt
    • alt=atom returns an Atom representation of the data.
    • alt=json retu...
https://www.googleapis.com/buzz/v1/

                       • preview=true     preview the operation.
                    ...
https://www.googleapis.com/buzz/v1/

                       • q={query}          search.
                       • lat, lon...
Activity Streams




Friday, July 9, 2010
Identity




Friday, July 9, 2010
Identity

                       Activities




Friday, July 9, 2010
Identity

                       Activities

                       Objects




Friday, July 9, 2010
Timothy

                       Shares

                       A Link




Friday, July 9, 2010
Barack Obama

                       Started Following

                       Timothy Jordan




Friday, July 9, 2010
Timothy Jordan

                       Started Following

                        Barack Obama




Friday, July 9, 2010
{
  "kind": "buzz#activity",
  "title": "note to self",
  "published": "2010-05-09T02:53:13.000Z",
  "updated": "2010-05-0...
{
  "kind": "buzz#activity",
  "title": "note to self",
  "published": "2010-05-09T02:53:13.000Z",
  "updated": "2010-05-0...
   "alternate": [
    {
     "href": "http://www.google.com/buzz/a/google.com",
     "type": "text/html"
    }
   ],
   "s...
2010:buzz:z13ispojgwqsinyij04chlupum2ytbspsa4?altu003djson",
     "type": "json"
    }
   ],
   "replies": [
    {
     "h...
   ],
   "replies": [
    {
     "href": "{url}/{userId}/@self/{commentId}/@comments?alt=json",
     "type": "application/...
  },
  "verbs": [
   "post"
  ],
  "object": {
   "type": "note",
   "content": "content goes here",
   "links": {
    "al...
  },
  "verbs": [
   "post"
  ],
  "object": {
   "type": "note",
   "content": "content goes here",
   "links": {
    "al...
    "alternate": [
     {
      "href": "http://www.google.com/buzz/a/google.com",
      "type": "text/html"
     }
    ]
...
   ],
   "replies": [
    {
     "href": "{url}/{userId}/@self/{commentId}/@comments?alt=json",
     "type": "application/...
Friday, July 9, 2010
  "object": {
   "type": "note",
   "content": "content goes here",
           "attachments": [
            {
            ...
Friday, July 9, 2010
  "object": {
   "type": "note",
   "content": "content goes here",
  "attachments": [
   
     {
      "type": "photo",
 ...
   "object": {
    "type": "note",
    "content": "content goes here",
    "attachments": [
     {
        "type": "video"...
Verbs                Objects
                  Favorite     Article    Photo
                  Follow       Audio      Pho...
Verbs                Objects
                  Favorite     Article    Photo
                  Follow       Audio      Pho...
Auth url:   https://www.google.com/buzz/api/auth/OAuthAuthorizeToken
                       scope:      https://www.google...
https://www.google.com/buzz/api/auth/OAuthAuthorizeToken
                       ?scope=https%3A%2F%2Fwww.googleapis.com%2F...
Friday, July 9, 2010
Friday, July 9, 2010
http://code.google.com/p/oacurl/




Friday, July 9, 2010
http://code.google.com/p/oacurl/



        mac:~ user$ echo 
          '{
            "data": {
              "object": {...
http://code.google.com/p/oacurl/




Friday, July 9, 2010
http://code.google.com/p/oacurl/



      mac:~ user$ echo '' | oacurl -X PUT 
                  "https://www.googleapis.c...
http://code.google.com/p/oacurl/




Friday, July 9, 2010
http://code.google.com/p/oacurl/



      mac:~ user$ oacurl -X DELETE 
                  "https://www.googleapis.com/buzz...
Examples
                  ...for fun and profit




Friday, July 9, 2010
Ping.fm    Marginize   Socialwok




                       Tweetdeck   Meebo bar   Shareaholic



                       ...
Boxee




Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
TweetDeck




Friday, July 9, 2010
Seesmic




Friday, July 9, 2010
Buzz Bingo
                       buzz-bingo.appspot.com




Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
How It Works




Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Friday, July 9, 2010
Sign-In & Auth for Buzz

         client = buzz.Client()
         client.build_oauth_consumer(
           OAUTH_CONSUMER_K...
Sign-In & Auth for Buzz

         request_token = 
           client.fetch_oauth_request_token(
             'http://examp...
Sign-In & Auth for Buzz


         # User visits the authorization_url




Friday, July 9, 2010
Friday, July 9, 2010
Sign-In & Auth for Buzz
         verifier = request.get('oauth_verifier')
         # Lookup request_token in data store
  ...
Friday, July 9, 2010
Generate Board
         # Create a new board
         topic_choices = 
           copy(models.board.TOPIC_LIST)
         t...
Generate Board


         for x in xrange(5):
           for y in xrange(5):
             if x != 2 or y != 2:
           ...
Friday, July 9, 2010
Friday, July 9, 2010
Board Marked


         for topic in models.board.TOPIC_LIST:
           if comment_text.find(topic.lower()) != -1:
      ...
Board Marked
         if post.attachments:
           for attachment in post.attachments:
             if attachment.type ...
Board Marked

         # Create the attachments for the post
         badge_attachment = buzz.Attachment(
           type=...
Board Marked
         # Assemble our announcement Buzz post
         badge_post = buzz.Post(
           content=post_conte...
Friday, July 9, 2010
Bingo!


         horizontal_counts = [0, 0, 1, 0, 0]
         vertical_counts   = [0, 0, 1, 0, 0]
         for x in xrang...
Bingo!

         if (5 in horizontal_counts) or 
             (5 in vertical_counts):
           self.award_badge('bingo')...
Buzz Bingo is open source!
                       code.google.com/p/buzz-bingo
                          buzz-bingo.appspo...
What’s next?




Friday, July 9, 2010
https://code.google.com/apis/buzz/docs/




Friday, July 9, 2010
https://groups.google.com/group/google-buzz-api




Friday, July 9, 2010
http://code.google.com/p/oacurl/
                       http://code.google.com/p/buzz-php-client/
                       h...
Q&A

Friday, July 9, 2010
Q&A

Friday, July 9, 2010
Thank you!




Friday, July 9, 2010
Idea Starters


       • Multi-site photo viewer: consume photos and render them in a lightbox
       • Event search (like...
Idea Starters


        • Trending topics. Topics or posts that are accelerating in the last N minutes.
        • Hot plac...
Upcoming SlideShare
Loading in...5
×

Dev festasia manila-social_pub

919

Published on

1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
919
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide
  • Intro: The Conversational Web -Chris Chabot, Chris Messina, Joseph Smarr, John Panzer, Will Norris -Good internet conversations -Post, rich media, links -Inline comments -Mentions Google Buzz
  • Intro: The Conversational Web -Chris Chabot, Chris Messina, Joseph Smarr, John Panzer, Will Norris -Good internet conversations -Post, rich media, links -Inline comments -Mentions Google Buzz
  • Intro: The Conversational Web -Chris Chabot, Chris Messina, Joseph Smarr, John Panzer, Will Norris -Good internet conversations -Post, rich media, links -Inline comments -Mentions Google Buzz
  • Intro: The Conversational Web -Chris Chabot, Chris Messina, Joseph Smarr, John Panzer, Will Norris -Good internet conversations -Post, rich media, links -Inline comments -Mentions Google Buzz
  • Intro: The Conversational Web -Chris Chabot, Chris Messina, Joseph Smarr, John Panzer, Will Norris -Good internet conversations -Post, rich media, links -Inline comments -Mentions Google Buzz
  • Intro: The Conversational Web -Chris Chabot, Chris Messina, Joseph Smarr, John Panzer, Will Norris -Good internet conversations -Post, rich media, links -Inline comments -Mentions Google Buzz
  • Intro: The Conversational Web -Chris Chabot, Chris Messina, Joseph Smarr, John Panzer, Will Norris -Good internet conversations -Post, rich media, links -Inline comments -Mentions Google Buzz
  • Salmon
  • This is the basis for activity streams which is quickly becoming how we describe all user activity online.
  • Your Identity
  • Your Activity
  • Your Objects
  • okay, let’s be honest...
  • - On the Boxee home screen, you see a list of items from Google Buzz in your feed. - You click on one that looks interesting.
  • - It then shows you the buzz comment and links you to the video - Hit play to start watching the video.
  • - And there you are. -Once you've decided you want to Buzz something, hit share.
  • - Enter custom text or just tell your followers you love it and send them a link.  We think this type of shared recommendation is going to be really cool and you can check it out now on Boxee.
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • -The application begins an OAuth flow against the current user's personal feed -This provides the app with a verified link to the current user's Google profile -The profile URI is what's used for cross-referencing Buzz comments with players -A side-effect is that only users with public profiles can play
  • -The application begins an OAuth flow against the current user's personal feed -This provides the app with a verified link to the current user's Google profile -The profile URI is what's used for cross-referencing Buzz comments with players -A side-effect is that only users with public profiles can play
  • -The application begins an OAuth flow against the current user's personal feed -This provides the app with a verified link to the current user's Google profile -The profile URI is what's used for cross-referencing Buzz comments with players -A side-effect is that only users with public profiles can play
  • Buzzword Bingo Overview
  • -The application begins an OAuth flow against the current user's personal feed -This provides the app with a verified link to the current user's Google profile -The profile URI is what's used for cross-referencing Buzz comments with players -A side-effect is that only users with public profiles can play
  • Buzzword Bingo Overview
  • -The bingo card is generated randomly from a preset list of topics. -The bingo card is saved and associated with the player's profile in the App Engine data store.
  • -The bingo card is generated randomly from a preset list of topics. -The bingo card is saved and associated with the player's profile in the App Engine data store.
  • Buzzword Bingo Overview
  • Buzzword Bingo Overview
  • -Whenever a player joins a conversation in Buzz that mentions one of the topics on their bingo card, they can @-mention the game's account. -This causes the conversation to appear in the game's consumption feed. -The game polls this feed and identifies any new conversations. -Polling is done via asynchronous App Engine Scheduled Tasks and Cron Jobs. -The feed is cached for performance reasons. -The game reads each new conversation and gives each player in the conversation credit for one of their matching game squares.
  • -Whenever a player joins a conversation in Buzz that mentions one of the topics on their bingo card, they can @-mention the game's account. -This causes the conversation to appear in the game's consumption feed. -The game polls this feed and identifies any new conversations. -Polling is done via asynchronous App Engine Scheduled Tasks and Cron Jobs. -The feed is cached for performance reasons. -The game reads each new conversation and gives each player in the conversation credit for one of their matching game squares.
  • -Whenever a player joins a conversation in Buzz that mentions one of the topics on their bingo card, they can @-mention the game's account. -This causes the conversation to appear in the game's consumption feed. -The game polls this feed and identifies any new conversations. -Polling is done via asynchronous App Engine Scheduled Tasks and Cron Jobs. -The feed is cached for performance reasons. -The game reads each new conversation and gives each player in the conversation credit for one of their matching game squares.
  • -Whenever a player joins a conversation in Buzz that mentions one of the topics on their bingo card, they can @-mention the game's account. -This causes the conversation to appear in the game's consumption feed. -The game polls this feed and identifies any new conversations. -Polling is done via asynchronous App Engine Scheduled Tasks and Cron Jobs. -The feed is cached for performance reasons. -The game reads each new conversation and gives each player in the conversation credit for one of their matching game squares.
  • Buzzword Bingo Overview
  • -Once enough game squares get filled in, the player will score a 'Bingo'. -The game will notify the player that they've achieved a 'Bingo' by sending out a post and @-mentioning the player.
  • -Once enough game squares get filled in, the player will score a 'Bingo'. -The game will notify the player that they've achieved a 'Bingo' by sending out a post and @-mentioning the player.
  • Next cool application: you The google buzz api is now live
  • Transcript of "Dev festasia manila-social_pub"

    1. 1. Friday, July 9, 2010
    2. 2. The Google Buzz API and You Google DevFest Manila, July 5th 2010 Friday, July 9, 2010
    3. 3. Hello Timothy Jordan Developer Advocate, Google buzz.timothyjordan.com @timothyjordan Friday, July 9, 2010
    4. 4. Hello Bob Aman Developer Programs Engineer, Google buzz.sporkmonger.com @sporkmonger Friday, July 9, 2010
    5. 5. This talk • Google Buzz & The Conversational Web • Open Standards • Google Buzz API • Examples • What’s next? Friday, July 9, 2010
    6. 6. Google Buzz ...and the conversational web Friday, July 9, 2010
    7. 7. Friday, July 9, 2010
    8. 8. Friday, July 9, 2010
    9. 9. Friday, July 9, 2010
    10. 10. Friday, July 9, 2010
    11. 11. Friday, July 9, 2010
    12. 12. Friday, July 9, 2010
    13. 13. Friday, July 9, 2010
    14. 14. Friday, July 9, 2010
    15. 15. Open Standards ...are a really good thing Friday, July 9, 2010
    16. 16. Friday, July 9, 2010
    17. 17. Friday, July 9, 2010
    18. 18. Friday, July 9, 2010
    19. 19. Friday, July 9, 2010
    20. 20. Friday, July 9, 2010
    21. 21. Friday, July 9, 2010
    22. 22. Google Buzz API Friday, July 9, 2010
    23. 23. Warning! Friday, July 9, 2010
    24. 24. https://www.googleapis.com/buzz/v1/ Friday, July 9, 2010
    25. 25. https://www.googleapis.com/buzz/v1/ https://code.google.com/apis/buzz/docs/ Friday, July 9, 2010
    26. 26. https://www.googleapis.com/buzz/v1/ http://code.google.com/p/oacurl/ Friday, July 9, 2010
    27. 27. https://www.googleapis.com/buzz/v1/ http://code.google.com/p/buzz-php-client/ http://code.google.com/p/buzz-python-client/ http://code.google.com/p/buzz-java-client/ Friday, July 9, 2010
    28. 28. https://www.googleapis.com/buzz/v1/ alt • alt=atom returns an Atom representation of the data. • alt=json returns a JSON representation of the data. prettyprint • If prettyprint=true, the results returned by the server will be human readable • Default: prettyprint=false https://www.googleapis.com/buzz/v1/activities/@me/@self?alt=json&prettyprint=true Friday, July 9, 2010
    29. 29. https://www.googleapis.com/buzz/v1/ • preview=true preview the operation. • max-results=N maximum number of results. • max-liked=N maximum number of likes • max-comments=N maximum number of comments • c={token} continuation token https://www.googleapis.com/buzz/v1/activities/@me/@self?max-results=20&c={token} Friday, July 9, 2010
    30. 30. https://www.googleapis.com/buzz/v1/ • q={query} search. • lat, lon, radius geo location. • bbox bounding box. https://www.googleapis.com/buzz/v1/activities/search?q={q}&lat={l}&lon={l}&radius={r} Friday, July 9, 2010
    31. 31. Activity Streams Friday, July 9, 2010
    32. 32. Identity Friday, July 9, 2010
    33. 33. Identity Activities Friday, July 9, 2010
    34. 34. Identity Activities Objects Friday, July 9, 2010
    35. 35. Timothy Shares A Link Friday, July 9, 2010
    36. 36. Barack Obama Started Following Timothy Jordan Friday, July 9, 2010
    37. 37. Timothy Jordan Started Following Barack Obama Friday, July 9, 2010
    38. 38. {   "kind": "buzz#activity",   "title": "note to self",   "published": "2010-05-09T02:53:13.000Z",   "updated": "2010-05-09T02:53:13.730Z",    "id": "tag:google.com,2010:buzz:foo",   "links": {    "liked": [     {      "href": "https://www.googleapis.com/buzz/v1/activities/110242419133439594545/@self/tag:google.com, 2010:buzz:z13ispojgwqsinyij04chlupum2ytbspsa4/@liked?altu003djson",      "type": "application/json",      "count": 0     }    ],    "alternate": [     {      "href": "http://www.google.com/buzz/a/google.com",      "type": "text/html"     }    ],    "self": [     {      "href": "https://www.googleapis.com/buzz/v1/activities/110242419133439594545/@self/tag:google.com, 2010:buzz:z13ispojgwqsinyij04chlupum2ytbspsa4?altu003djson", Friday, July 9, 2010
    39. 39. {   "kind": "buzz#activity",   "title": "note to self",   "published": "2010-05-09T02:53:13.000Z",   "updated": "2010-05-09T02:53:13.730Z",    "id": "tag:google.com,2010:buzz:foo",   "links": {    "liked": [     {      "href": "{url}/{userid}/@self/{commentId}/@liked?alt=json",      "type": "application/json",      "count": 4, "updated": "2010-05-09T02:53:13.730Z"     }    ],    "alternate": [     {      "href": "http://www.google.com/buzz/a/google.com",      "type": "text/html"     }    ],    "self": [     {      "href": "https://www.googleapis.com/buzz/v1/activities/110242419133439594545/@self/tag:google.com, 2010:buzz:z13ispojgwqsinyij04chlupum2ytbspsa4?altu003djson",      "type": "json" Friday, July 9, 2010
    40. 40.    "alternate": [     {      "href": "http://www.google.com/buzz/a/google.com",      "type": "text/html"     }    ],    "self": [     {      "href": "https://www.googleapis.com/buzz/v1/activities/110242419133439594545/@self/tag:google.com, 2010:buzz:z13ispojgwqsinyij04chlupum2ytbspsa4?altu003djson",      "type": "json"     }    ], "replies": [         {      "href": "{url}/{userId}/@self/{commentId}/@comments?alt=json",      "type": "application/json",      "count": 2,      "updated": "2010-05-09T02:53:13.730Z"     }    ]   },   "actor": {    "id": "110242419133439594545",    "name": "Chris Chabot",    "profileUrl": "http://www.google.com/profiles/a/google.com/110242419133439594545",    "thumbnailUrl": ""   },   "verbs": [    "post"   ],   "object": { Friday, July 9, 2010
    41. 41. 2010:buzz:z13ispojgwqsinyij04chlupum2ytbspsa4?altu003djson",      "type": "json"     }    ],    "replies": [     {      "href": "{url}/{userId}/@self/{commentId}/@comments?alt=json",      "type": "application/json",      "count": 2,      "updated": "2010-05-09T02:53:13.730Z"     }    ]   },   "actor": {    "id": "110242419133439594545",    "name": "Chris Chabot",    "profileUrl": "{url}/chabotc",    "thumbnailUrl": "{url}/chabotc/thumb.jpg"   },   "verbs": [    "post"   ],   "object": {    "type": "note",    "content": "content goes here",    "links": {     "alternate": [      {       "href": "http://www.google.com/buzz/a/google.com",       "type": "text/html"      }     ]    }   }, Friday, July 9, 2010
    42. 42.    ],    "replies": [     {      "href": "{url}/{userId}/@self/{commentId}/@comments?alt=json",      "type": "application/json",      "count": 2,      "updated": "2010-05-09T02:53:13.730Z"     }    ]   },   "actor": {    "id": "110242419133439594545",    "name": "Chris Chabot",    "profileUrl": "{url}/chabotc",    "thumbnailUrl": "{url}/chabotc/thumb.jpg"   },   "verbs": [    "post"   ],   "object": {    "type": "note",    "content": "content goes here",    "links": {     "alternate": [      {       "href": "http://www.google.com/buzz/a/google.com",       "type": "text/html"      }     ]    }   },   "source": {    "title": "Buzz"   },   "visibility": {    "entries": [ Friday, July 9, 2010
    43. 43.   },   "verbs": [    "post"   ],   "object": {    "type": "note",    "content": "content goes here",    "links": {     "alternate": [      {       "href": "http://www.google.com/buzz/a/google.com",       "type": "text/html"      }     ]    }   },   "source": {    "title": "Buzz"   },   "visibility": {    "entries": [     {      "id": "https://www.googleapis.com/buzz/v1/people/@me/@groups/@public?altu003djson",      "title": "Public"     }    ]   }  } Friday, July 9, 2010
    44. 44.   },   "verbs": [    "post"   ],   "object": {    "type": "note",    "content": "content goes here",    "links": {     "alternate": [      {       "href": "http://www.google.com/buzz/a/google.com",       "type": "text/html"      }     ]    }   },   "source": {    "title": "Buzz"   }, "visibility": {       "entries": [     {      "id": "{url}/people/@me/@groups/@public?alt=json",      "title": "Public"     }    ]   }  } Friday, July 9, 2010
    45. 45.     "alternate": [      {       "href": "http://www.google.com/buzz/a/google.com",       "type": "text/html"      }     ]    }   },   "source": {    "title": "Buzz"   },   "visibility": {    "entries": [     {      "id": "{url}/people/@me/@groups/@public?alt=json",      "title": "Public"     }    ] }, "geocode": "37.783471 -122.39922", "address": "701-737 Folsom St, San Francisco, CA 94103, USA", "placeName": "300 3rd St, San Francisco, CA 94107" }  } Friday, July 9, 2010
    46. 46.    ],    "replies": [     {      "href": "{url}/{userId}/@self/{commentId}/@comments?alt=json",      "type": "application/json",      "count": 2,      "updated": "2010-05-09T02:53:13.730Z"     }    ]   },   "actor": {    "id": "110242419133439594545",    "name": "Chris Chabot",    "profileUrl": "{url}/chabotc",    "thumbnailUrl": "{url}/chabotc/thumb.jpg"   },   "verbs": [    "post"   ],   "object": {    "type": "note",    "content": "content goes here"    }   },   "source": {    "title": "Buzz"   },   "visibility": {    "entries": [     {      "id": "https://www.googleapis.com/buzz/v1/people/@me/@groups/@public?altu003djson",      "title": "Public"     }    ]   }  } Friday, July 9, 2010
    47. 47. Friday, July 9, 2010
    48. 48.   "object": {    "type": "note",    "content": "content goes here", "attachments": [ { "type": "article", "title": "Name of the link", "links": { "alternate": [ { "href": "{url}/to/article.html", "type": "text/html" } ] } } ]   } Friday, July 9, 2010
    49. 49. Friday, July 9, 2010
    50. 50.   "object": {    "type": "note",    "content": "content goes here", "attachments": [          {       "type": "photo",       "links": {        "preview": [         {          "href": "{url}/image_thumb.jpg",          "type": "image/jpeg"         }        ],        "enclosure": [         {          "href": "{url}/image.jpg",          "type": "image/jpeg",          "height": 190,          "width": 260         }        ]      }     }    ]   } Friday, July 9, 2010
    51. 51.    "object": {     "type": "note",     "content": "content goes here", "attachments": [ { "type": "video", "title": "video description goes here", "links": { "alternate": [ { "href": "http://www.youtube.com/watch?v=abcdef", "type": "text/html" } ], "preview": [ { "href": "{url}/default.jpg", "type": "image/jpeg" }, { "href": "{url}/proxy?thumbnail_default.jpg", "type": "image/jpeg" } ] } } ] Friday, July 9, 2010
    52. 52. Verbs Objects Favorite Article Photo Follow Audio Photo Album Friend Bookmark Place Join Comment Playlist Play File Product Post Folder Review Save Group Service Share List Status Tag Note Video Update Person Friday, July 9, 2010
    53. 53. Verbs Objects Favorite Article Photo Follow Audio Photo Album Friend Bookmark Place Join Comment Playlist Play File Product Post Folder Review Save Group Service Share List Status Tag Note Video Update Person Friday, July 9, 2010
    54. 54. Auth url: https://www.google.com/buzz/api/auth/OAuthAuthorizeToken scope: https://www.googleapis.com/auth/buzz domain: www.example.org iconUrl: http://www.example.org/icon.png Friday, July 9, 2010
    55. 55. https://www.google.com/buzz/api/auth/OAuthAuthorizeToken ?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbuzz &domain=www.example.org &oauth_token= Friday, July 9, 2010
    56. 56. Friday, July 9, 2010
    57. 57. Friday, July 9, 2010
    58. 58. http://code.google.com/p/oacurl/ Friday, July 9, 2010
    59. 59. http://code.google.com/p/oacurl/ mac:~ user$ echo   '{     "data": {       "object": {         "type": "note",         "content": "Bzz! Bzz! via JSON"       }     }    }'| oacurl -t JSON -X POST "https://www.googleapis.com/buzz/v1/activities/@me/@self?alt=json" Friday, July 9, 2010
    60. 60. http://code.google.com/p/oacurl/ Friday, July 9, 2010
    61. 61. http://code.google.com/p/oacurl/ mac:~ user$ echo '' | oacurl -X PUT "https://www.googleapis.com/buzz/v1/activities/@me/@liked/{activityId}" Friday, July 9, 2010
    62. 62. http://code.google.com/p/oacurl/ Friday, July 9, 2010
    63. 63. http://code.google.com/p/oacurl/ mac:~ user$ oacurl -X DELETE "https://www.googleapis.com/buzz/v1/activities/@me/@liked/{activityId}" Friday, July 9, 2010
    64. 64. Examples ...for fun and profit Friday, July 9, 2010
    65. 65. Ping.fm Marginize Socialwok Tweetdeck Meebo bar Shareaholic Klout Seesmic Buzzzy Friday, July 9, 2010
    66. 66. Boxee Friday, July 9, 2010
    67. 67. Friday, July 9, 2010
    68. 68. Friday, July 9, 2010
    69. 69. Friday, July 9, 2010
    70. 70. Friday, July 9, 2010
    71. 71. TweetDeck Friday, July 9, 2010
    72. 72. Seesmic Friday, July 9, 2010
    73. 73. Buzz Bingo buzz-bingo.appspot.com Friday, July 9, 2010
    74. 74. Friday, July 9, 2010
    75. 75. Friday, July 9, 2010
    76. 76. Friday, July 9, 2010
    77. 77. Friday, July 9, 2010
    78. 78. Friday, July 9, 2010
    79. 79. Friday, July 9, 2010
    80. 80. Friday, July 9, 2010
    81. 81. Friday, July 9, 2010
    82. 82. Friday, July 9, 2010
    83. 83. Friday, July 9, 2010
    84. 84. Friday, July 9, 2010
    85. 85. Friday, July 9, 2010
    86. 86. Friday, July 9, 2010
    87. 87. Friday, July 9, 2010
    88. 88. Friday, July 9, 2010
    89. 89. Friday, July 9, 2010
    90. 90. Friday, July 9, 2010
    91. 91. Friday, July 9, 2010
    92. 92. Friday, July 9, 2010
    93. 93. Friday, July 9, 2010
    94. 94. Friday, July 9, 2010
    95. 95. Friday, July 9, 2010
    96. 96. How It Works Friday, July 9, 2010
    97. 97. Friday, July 9, 2010
    98. 98. Friday, July 9, 2010
    99. 99. Friday, July 9, 2010
    100. 100. Sign-In & Auth for Buzz client = buzz.Client() client.build_oauth_consumer(   OAUTH_CONSUMER_KEY,   OAUTH_CONSUMER_SECRET ) client.oauth_scopes.append(   buzz.FULL_ACCESS_SCOPE ) Friday, July 9, 2010
    101. 101. Sign-In & Auth for Buzz request_token =   client.fetch_oauth_request_token(     'http://example.com/oauth/callback/'   ) # Save request token to the data store authorization_url =   client.build_oauth_authorization_url(     request_token   ) Friday, July 9, 2010
    102. 102. Sign-In & Auth for Buzz # User visits the authorization_url Friday, July 9, 2010
    103. 103. Friday, July 9, 2010
    104. 104. Sign-In & Auth for Buzz verifier = request.get('oauth_verifier') # Lookup request_token in data store client.oauth_request_token = request_token access_token =   client.fetch_oauth_access_token(verifier ) # Save access token to the data store Friday, July 9, 2010
    105. 105. Friday, July 9, 2010
    106. 106. Generate Board # Create a new board topic_choices =   copy(models.board.TOPIC_LIST) topics = [] # Select 24 topics at random. # Center square is free space. while(topic_choices and len(topics) < 24):   element = random.choice(topic_choices)   topic_choices.remove(element)   topics.append(element) Friday, July 9, 2010
    107. 107. Generate Board for x in xrange(5):   for y in xrange(5):     if x != 2 or y != 2:       # We skip over the 'Free Space'       square = models.board.Square(         parent=self,         key_name=('%d:%d' % (x, y)),         topic=topics.pop()       )       square.put()       board[x][y] = square Friday, July 9, 2010
    108. 108. Friday, July 9, 2010
    109. 109. Friday, July 9, 2010
    110. 110. Board Marked for topic in models.board.TOPIC_LIST:   if comment_text.find(topic.lower()) != -1:     topics_found.add(topic) # Calculate the topics we can score on intersection = [   topic for topic in player.topics   if topic in topics_found ] if intersection and     not player.has_post_scored(post_id):   scoring_topic = random.choice(intersection)   player.score_post(     post_id, post_uri, scoring_topic   ) Friday, July 9, 2010
    111. 111. Board Marked if post.attachments:   for attachment in post.attachments:     if attachment.type == 'article':       self.award_badge('share')       break if post.geocode and     post.actor.id != self.key().name():   self.award_badge('geo') elif post.geocode:   self.award_badge('mobile') Friday, July 9, 2010
    112. 112. Board Marked # Create the attachments for the post badge_attachment = buzz.Attachment(   type='photo', enclosure=badge.badge_icon ) link_attachment = buzz.Attachment(   type='article',   title='Buzz Bingo',   uri='http://buzz-bingo.appspot.com/' ) Friday, July 9, 2010
    113. 113. Board Marked # Assemble our announcement Buzz post badge_post = buzz.Post(   content=post_content,   attachments=[     badge_attachment,     link_attachment   ],   geocode=VENUE_GEOCODE,   place_id=VENUE_PLACE_ID ) # Create the post self.client.create_post(badge_post) Friday, July 9, 2010
    114. 114. Friday, July 9, 2010
    115. 115. Bingo! horizontal_counts = [0, 0, 1, 0, 0] vertical_counts   = [0, 0, 1, 0, 0] for x in xrange(5):   for y in xrange(5):     if self.board[x][y] and         self.board[x][y].post_id:       horizontal_counts[y] += 1       vertical_counts[x] += 1 Friday, July 9, 2010
    116. 116. Bingo! if (5 in horizontal_counts) or     (5 in vertical_counts):   self.award_badge('bingo')   if not self.bingo_count:     self.bingo_count = 0   self.bingo_count += 1   self.put() Friday, July 9, 2010
    117. 117. Buzz Bingo is open source! code.google.com/p/buzz-bingo buzz-bingo.appspot.com Friday, July 9, 2010
    118. 118. What’s next? Friday, July 9, 2010
    119. 119. https://code.google.com/apis/buzz/docs/ Friday, July 9, 2010
    120. 120. https://groups.google.com/group/google-buzz-api Friday, July 9, 2010
    121. 121. http://code.google.com/p/oacurl/ http://code.google.com/p/buzz-php-client/ http://code.google.com/p/buzz-python-client/ http://code.google.com/p/buzz-java-client/ Friday, July 9, 2010
    122. 122. Q&A Friday, July 9, 2010
    123. 123. Q&A Friday, July 9, 2010
    124. 124. Thank you! Friday, July 9, 2010
    125. 125. Idea Starters • Multi-site photo viewer: consume photos and render them in a lightbox • Event search (like BuzzWatching: restrict by date, and add location as well): deal with the types and generate different renderings. Tweak ranking by weighting • Best Of Day/Week/Month viewer • Community Finder: cluster people in your extended social around a topic • People Finder: find people in your geographical area who have similar interests Friday, July 9, 2010
    126. 126. Idea Starters • Trending topics. Topics or posts that are accelerating in the last N minutes. • Hot places: FInd places that have the most activity within a given geographic area. • Buzz List (like Reader bundles): Allow users to create and share collections of other users. Allow them the ability to subscribe to lists of other users. • Auto-follow: based on my remote account (e.g. Flickr) • Spoiler detection: scan the user's consumption API and mute posts that talk about certain TV shows. Friday, July 9, 2010

    ×