Austin Chau and Brian Kennish Google Developer Relations Developing a Google Wave Extension Silicon Valley Code Camp 2009
Topics Writing and Deploying Packaging Questions Introduction to Wave Setting Up Your Development Environment Troubleshoot...
Introduction to Wave
Using Wave What would email look like if it was invented today, rather than 40 years ago? Wave combines email and many com...
Developing with Wave: The Protocol We want lots of Waves besides Google Wave, so we're drafting the protocol specification...
Developing with Wave: The Platform <ul><li>Embeds  bring Wave to the world. </li></ul><ul><li>Extensions  bring the world ...
Developing with Wave: Terminology wave  — A conversation and shared document in Wave. wavelet  — The unit of access contro...
Setting Up Your Development Environment
Tools Robots are currently required to use  Google App Engine . You can sign up for an account at  http://appengine.google...
Writing and Deploying
The Robot WAR File /war /WEB-INF/web.xml  binds the robot servlets to the  Wave endpoints . /war /WEB-INF/appengine-web.xm...
Sample Code: Hello-Worldy [email_address] Does &quot;hello world&quot;-type stuff. Appends text, echoes submitted blips, a...
Sample Code: Stocky [email_address] Replaces stock symbols with real-time quotes. Incorporates third-party data into Wave....
Sample Code: Embeddy [email_address] Generates code to embed a wave in your webpage. Features all three of the current Wav...
Troubleshooting
Tips Check your App Engine logs for errors. Go to http:// app-id .appspot.com/_wave/capabilities.xml   to see if your capa...
Packaging
The Extension Installer <ul><li>Extension Hooks: </li></ul><ul><ul><li>NEW_WAVE_MENU </li></ul></ul><ul><ul><li>TOOLBAR </...
Questions
Contact Us Brian Kennish Google Wave and Chrome [email_address] http://twitter.com/byoogle Austin Chau Google Wave and You...
Upcoming SlideShare
Loading in...5
×

Developing a Google Wave Extension

1,994

Published on

Learn how to build a Wave robot from the ground up using Google App Engine, Java, and Eclipse. We walk through setting up your development environment, writing the extension, and deploying, troubleshooting, and packaging it. These slides are from a talk given at Silicon Valley Code Camp 2009.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,994
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
35
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Developing a Google Wave Extension

  1. 1. Austin Chau and Brian Kennish Google Developer Relations Developing a Google Wave Extension Silicon Valley Code Camp 2009
  2. 2. Topics Writing and Deploying Packaging Questions Introduction to Wave Setting Up Your Development Environment Troubleshooting
  3. 3. Introduction to Wave
  4. 4. Using Wave What would email look like if it was invented today, rather than 40 years ago? Wave combines email and many communication technologies since — instant messaging, bulletin boards, wikis, real-time document collaboration — in one place. It's also a  protocol  and  platform .
  5. 5. Developing with Wave: The Protocol We want lots of Waves besides Google Wave, so we're drafting the protocol specification in public and open sourcing our client and server code. http://www.waveprotocol.org/
  6. 6. Developing with Wave: The Platform <ul><li>Embeds bring Wave to the world. </li></ul><ul><li>Extensions  bring the world to Wave: </li></ul><ul><ul><li>Gadgets  let you safely run untrusted code in a wave. </li></ul></ul><ul><ul><li>Robots are automated wave participants. </li></ul></ul>
  7. 7. Developing with Wave: Terminology wave  — A conversation and shared document in Wave. wavelet  — The unit of access control in a wave. blip  — A message in a wavelet.
  8. 8. Setting Up Your Development Environment
  9. 9. Tools Robots are currently required to use Google App Engine . You can sign up for an account at http://appengine.google.com/ . Java robots are also required to use the Wave Java SDK (Python robots are possible too). You can download the latest JARs from http://code.google.com/p/ wave-robot-java-client/downloads/list . Using Eclipse isn't required, but we recommend doing so because the Google Plugin makes it easy to create and deploy App Engine applications. You can install the plugin via http://code.google.com/eclipse/ .
  10. 10. Writing and Deploying
  11. 11. The Robot WAR File /war /WEB-INF/web.xml binds the robot servlets to the Wave endpoints . /war /WEB-INF/appengine-web.xml specifies the App Engine identifiers . /war /_wave/capabilities.xml subscribes the robot to Wave events .
  12. 12. Sample Code: Hello-Worldy [email_address] Does &quot;hello world&quot;-type stuff. Appends text, echoes submitted blips, and implements form UI. http://code.google.com/p/google-wave-resources/source/ browse/trunk/samples/extensions/robots/java/hello-worldy/
  13. 13. Sample Code: Stocky [email_address] Replaces stock symbols with real-time quotes. Incorporates third-party data into Wave. http://code.google.com/p/google-wave-resources/source/ browse/trunk/samples/extensions/robots/java/stocky/
  14. 14. Sample Code: Embeddy [email_address] Generates code to embed a wave in your webpage. Features all three of the current Wave APIs and two-way robot- to-gadget communication. http://code.google.com/p/google-wave-resources/source/ browse/trunk/samples/extensions/robots/java/embeddy
  15. 15. Troubleshooting
  16. 16. Tips Check your App Engine logs for errors. Go to http:// app-id .appspot.com/_wave/capabilities.xml   to see if your capabilities file is live. Make sure you updated your capabilities version string after adding events. Increase your log level in /war/WEB-INF/logging.properties , e.g., to ALL .
  17. 17. Packaging
  18. 18. The Extension Installer <ul><li>Extension Hooks: </li></ul><ul><ul><li>NEW_WAVE_MENU </li></ul></ul><ul><ul><li>TOOLBAR </li></ul></ul><ul><li>Extension Actions: </li></ul><ul><ul><li>createNewWave </li></ul></ul><ul><ul><li>addParticipants </li></ul></ul><menuHook    location=&quot; TOOLBAR &quot;    iconUrl=&quot;http://hello-worldy.appspot.com/images/robot.jpg&quot;    text=&quot;Add Hello-Worldy&quot;>    < addParticipants >      <participant id=&quot;hello-worldy@appspot.com&quot; />    </ addParticipants > </menuHook>
  19. 19. Questions
  20. 20. Contact Us Brian Kennish Google Wave and Chrome [email_address] http://twitter.com/byoogle Austin Chau Google Wave and YouTube [email_address]
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×