Embed API Improvements: Viewing public waves without a wave account

Friday, April 30, 2010 | 10:32 AM

We recently introduced a new API for embedding waves, which includes a powerful new feature: anonymous, read-only access to public waves. Prior to this launch, webmasters could embed waves into their sites, but visitors could only see the content of the embedded wave if they had a Google Wave account, were logged in, and had access to that particular wave. Now, all waves with public@a.gwave.com (or a properly configured Google Group) as a participant can be embedded in a website so their content can be read by those who don't have a wave account (or simply aren't logged in).

You can view an example of this below or see it in action by visiting the KitchenSinky walkthrough documentation.



The new embed API also provides some optional parameters, like the ability to display participants in the the header panel or to include the toolbar. With an embedded wave, users are able to discuss topics in realtime and even catch up by playing back the exchange. Additionally, it provides a mechanism for staying involved in the conversation without requiring the user to constantly check the host site for updates.

To get started with the API, please visit the tutorial and consult the API reference.

If you're just interested in quickly getting a wave embedded on your site, you can simply make the wave and then get the code to paste into your site using the new Wave Element.

As you're diving in, here are a few ideas for ways to make use of embedded waves:

  • Use a wave to do live-blogging (or "live-waving" as we call it) about breaking news. You can provide up-to-the-second commentary for an election, earnings call, sporting event, or product announcement -- and even combine points of view from multiple bloggers into a single wave.
  • Display realtime RSVPs to an event with the Yes/No/Maybe gadget. Participants can also add comments for everyone to see.
  • Publish documentation or other articles via embedded waves. It's easy to update and readers can simply follow the wave to stay in the loop on changes. For example, we publish the Wave API release changelog as an embedded wave.
  • Take advantage of the active robots API and create waves programmatically for embedding in a variety of sites, such as a private messaging system for a social network, a shared collaborative workspace in a productivity tool, or as a customer support system.

We hope you find this new API and this new level of access useful, and we have more improvements to the embed API on the way. For example, at the moment, embedded waves do not work in Internet Explorer (even with Google Chrome Frame), but we will be resolving that issue.

We look forward to seeing what you come up with. If you have questions or comments, please discuss in the forum.


The API v2 Robots Have Risen: Check them out!

Tuesday, April 27, 2010 | 10:18 AM

We launched the new Robots API (v2) last month, and since then, we've seen a a slew of new and interesting robots from Google Wave developers -- proving that robots can now be used in more ways than ever before.

We want to share some examples here, to give you a taste of the possibilities:


Pushy: This robot accepts any form of HTTP post and adds the content as a new message on the wave. It has special handling for the post-commit hooks on github and googlecode. The developer created this robot because he uses Google Wave at his company, and he wanted a way to have waves be updated based on their github project activity I've personally been using it to subscribe to updates on our google-wave-resources project. You can check out the source code from the samples gallery, and install it from the gallery wave.

docXwave: This robot imports .docx (Microsoft Word) files into a wave, converting the formatting and even tables, using a table gadget. The developer is a part of Plutext, a group of developers working on various Microsoft Word related efforts and an open source OpenXML file converter python module. You can install it from the gallery wave.

Ferry: This robot exports Google waves to Google documents, letting you specify if you want to continually export, and if you want to export everything or just the root blip. This is useful for people that want to export to a Google doc for the printing, exporting, or extra formatting capabilities. You can install it from the gallery wave.
robot-robot: The robot lets you write code inside a wave, and run that code as a robot on another wave. This means that you can get started playing around with the APIs, without having to setup an App Engine account and your own project. I'm looking forward to using it for live demos and codelabs. You can check out the source code from the samples gallery, and install it from the gallery wave. You might also be interested in "as-a-robot", another robot-writing robot from a different developer. Great developers think alike!

Mr. Ray: This robot makes it possible to use wave with people not on wave - you add their emails via a gadget, and the robot emails them a static copy of the wave. When they reply in the static interface, it syncs the reply back into the wave. It's a fantastic use of the proxying for feature in the new API, and of course, the active API. It's also incredibly useful - I'm using it to plan an event with high school friends, who are all highly addicted to their email system of choice. You can install Mr. Ray from the gallery wave.

If you're working on your own API v2 robots, be sure to share them in the forum and in the extensions gallery. We look forward to seeing what your creative minds come up with.


10 New Articles; 10 More Ways to Learn the Google Wave APIs

Sunday, April 11, 2010 | 12:52 PM

We've added 10 new articles to the documentation, written by both the Google Wave API team and developers like you, and we hope these articles will give you a new way of understanding how to use the APIs.

After launching the new robots API a month ago, robot developers have already written a bunch of articles about using it in various ways, from developing in Eclipse to integrating with Salesforce:

Meanwhile, gadget developers have been spreading their knowledge on writing gadgets, with articles on everything from Flex to GWT:

If you wrote an article yourself, please share it in the forum. Happy reading!

Google Wave Federation Protocol: More Docs, More Code

Wednesday, April 7, 2010 | 9:29 PM

When we shipped the FedOne code to demonstrate the Google Wave Federation Protocol, we included some overview information and basic documentation on how to get it up and running. Since then, the community has stepped up and contributed some great documentation, and we wanted to highlight a couple of great resources that may be helpful to anyone interested in the Google Wave Federationn Protocol.

For example, Anthony Watkins wrote several articles to explain the architecture of the FedOne code:

In an effort to bring together this and other community-created resources in a single place, we've gathered links to Anthony's articles, along with links to articles by James Purser and Bryce into a wiki page. Be sure to check them out, and let us know if we've missed any great articles on the Google Wave Federation Protocol or the FedOne code. Share your links on the wave protocol discussion forum and we will update the wiki as they come in.

Also be sure to check out the new, recently open sourced wave document model code, as announced by J.D. in the Google Wave Protocol Forum:

We have just open sourced a significant new chunk of Google Wave source code: the wave document model. The new code, some thirty-eight thousand lines of code mainly in the org.waveprocotol.wave.model.document package, implements useful and efficient data structures for reading and manipulating wave documents. This is the same document model used by the Google Wave client and servers.

In case you missed it, Novell Pulse recently demonstrated federation with Google Wave.

Finally, be sure to visit us if you are attending Google I/O, there are some some great talks lined up, we hope to see you there!

Developing with the Google Wave APIs - For a grade!

Monday, April 5, 2010 | 8:56 PM

As a student at university, I always loved when I had the chance to use a Web API in my programming assignments. I think Web API programming is a great way for students to get a taste of the real world, and plus, APIs are just plain fun. :)

So, I was thrilled when I found out that a class of students in Singapore were working on a Google Wave extensions project, and I volunteered to give them a virtual talk. As part of the talk, I critiqued each of their final projects, giving them advice on making them "Wave-ier"and easier to use. Overall, I was incredibly impressed with the diversity & utility of their extensions - everything from adorable games to meeting planners:


Scrummy: This gadget lets you assign tasks to participants for particular "sprints", and then visualize the tasks for each sprint.
Bubble Man: This super cute gadget let you play a game of balloon popping - if you pop the balloon next to the other player, you win. As a connoisseur of water balloon fights, I think this is an awesome game.
Chess Room: This gadget displays a "room" of 6 tables. You can pick a "table", and enter it to a game of chess against another player.
Note Sticker: This gadget lets you collect notes in a collaborative gadget, similar to desktop note apps (or similar to post-its on your physical desktop, if you're old school like that).
WavePlan: This gadget lets participants select what days/hours they're available, to help in picking the best meeting time.
yourBrainstormer: This slick looking gadget lets you create a sequence of parent and child nodes, and to navigate amongst them.
NTI Language Translator: This gadget lets you translate text using the Google AJAX Language API, and it shares the currently translated text with others in the wave.

For the complete list and links to the extensions, visit the course project page.

Many of these are still in prototype form, but some of them are already user-ready and in the extensions gallery, like the yourBrainstormer extension, and others are in the samples gallery, like the Scrummy gadget. I hope that the students have the time to continue working on their extensions, and take them from a class assignment to an in-use web app. It's so cool that you can make something for a class *and* for thousands of users.

If you are a professor and thinking of using Google Wave in your programming assignments, you can grab the Latex/PDF for this class assignment, and you can browse the presentations gallery for slides to deliver for class lectures. Let us know if you have any questions in the forum.

Thanks to Professor Ben Leong for teaching his students about the Google Wave APIs, letting me talk with the students for a few brief virtual hours, and for getting students excited by the possibility of Web APIs.