Friday 19 December 2008

REST and RPC support in the developer sandbox

If you've got Firebug installed on your iGoogle page, you may have noticed how requests to fetch people, friends, or persistent data are formatted. These requests follow the RPC specification that's part of OpenSocial, and, while they've been part of the sandbox for a few months now, never really deserved a mention, until today.

We've just released four client libraries (Java, PHP, Python, and Ruby) for using these REST and RPC requests as part of your own gadgets. With these libraries, you can access social data without having to go through an iGoogle page (for instance, if you need to do offline processing), or even write an application without having to write any JavaScript.

To get started, download the client of your choice and try the included samples, which work on a variety of OpenSocial containers. (For reference, the iGoogle endpoints are http://sandbox.gmodules.com/api for REST calls, and http://sandbox.gmodules.com/api/rpc for RPC calls.) When you're ready to do your own iGoogle development, register your application to get the authentication keys you'll need to use the API.

If you have questions or comments, join us in the OpenSocial client libraries group. Have a RESTful (and RPCful) holiday season!

Wednesday 19 November 2008

Sign in to MySpace, AOL Mail, and Google Books gadgets

See your latest updates on MySpace, read and reply to messages in AOL Mail, and keep track of your Google Book Search Library.



These are the first three gadgets on iGoogle to use OAuth, which is a privacy-preserving security standard that defines how a user can give consent for their data on one website to be accessed by another website (or in this case a gadget). iGoogle never sees the user's password on the other site, and the gadget displays the user's data from the other site without storing any of it on Google's own servers (read more details about OAuth on our Security Blog). With these gadgets on iGoogle, users can now keep track of even more personalized information from across their online life. For example, the MySpace gadget shows your friends' latest updates, status messages, bulletins, and an inbox preview.

With the AOL Mail gadget, you can preview all your email messages in home view. In canvas view, read rich text email, compose, reply, delete, mark as spam, and more. The gadget even includes autocomplete, attachments, spell check, and sorting options. If you have an AOL Mail or AIM Mail account, you must try this gadget.

The Google Book Search Library gadget allows you to keep track of all the books you want to read, and also offers you personalized recommendations. Finding new books and removing books from your library is a snap. You can even preview your books from right within iGoogle's canvas view.

These gadgets are also great examples of how to utilize the canvas view, which launched last month on iGoogle. If you want to create a gadget like AOL and MySpace, this overview will get you started on exposing an API that can be accessed using OAuth. If you already know which OAuth enabled API you want to access, you can jump directly to the gadgets documentation.

Tuesday 28 October 2008

The sandbox...it lives!

After a slightly-longer-than-expected hiatus in the sandbox, the gadgets.* and opensocial.* APIs have been brought back from the dead, just in time for Halloween.

Let gadgets.util is undefined haunt you no more!

Friday 17 October 2008

For every action...

...there is an equal and opposite reaction. But, even Newton might not have foreseen that when pushing changes to iGoogle, we'd temporarily disable social functionality in the iGoogle developer sandbox. Access to the gadgets.* and OpenSocial APIs should return on Tuesday, along with a properly functioning developer gadget.

In the interim, watch out for falling apples, and I'll see everyone on Tuesday.

Thursday 16 October 2008

Big canvas, big opportunity

Some artists say that a blank canvas is daunting. We think of it as an opportunity, which is why we’re excited to be launching the canvas view feature to iGoogle users. Canvas view will roll out to users in the U.S. over the course of the day, and to international users in the near future.

Canvas view allows developers to deliver richer content, games, and UI to users on iGoogle as well as the opportunity to monetize. We’ve seen a lot of great development in the sandbox already, and we are proud to highlight several of our developers' canvas view gadgets. To start building a canvas view, check out our how to guide, which includes sample code for views, latency tips, and suggested design principles.

In addition to canvas view, we’re also replacing the tab interface with the left navigation seen in the sandbox. This allows users to jump from one canvas view to another with only one click. Going forward, we're working hard to graduate more functionality out of the sandbox and into production, such as OpenSocial.

Giving developers new opportunities makes for better gadgets, which is ultimately great for users. We’re eager to see what you create. If you have any questions, please join the developer forum.

Happy coding!

Friday 26 September 2008

What's the difference among friends?

I'm excited to announce that we've launched two important changes to the iGoogle developer sandbox. First, we have done a major upgrade on the sandbox friends manager that allows you to import, search and create groups of contacts. To share items with a contact, make sure you are in the iGoogle sandbox, and add a contact to the group called "Friends." If you already have the sandbox friends gadget installed, it should automatically upgrade. If not, you can add it here.

For development purposes, if you are sharing with friends in Google Reader, the same contacts in your "Friends" group in Reader will also be in your "Friends" group in the iGoogle sandbox. Your old sandbox friends will have to be added again to the "Friends" group.



In conjunction with the new sandbox friends manager, we are also changing what people and sharing calls return. You can now share content with contacts in your "Friends" group, even if those contacts have not added you to their "Friends" group. For example:
var req = opensocial.newDataRequest();
req.add(req.newFetchPeopleRequest("VIEWER_FRIENDS"), "friends");
req.send(response);

Will now return some friends with ids, and some friends without. Friends with ids are those who have you in their "Friends" group, while friends without ids do not.
function response(data) {
var friends = data.get("friends").getData();
friends.each(function(person) {
if (person.getId()) {
alert(person.getDisplayName() + " is a mutual friend.");
} else {
alert(person.getDisplayName() + " hasn't put you in their \"Friends\" group.");
}
});
};

When you post an update, it will be viewable to any person in your "Friends" group.

If you have any questions about these changes, feel free to contact us in the developer forum.

Tuesday 16 September 2008

Getting ready for the canvas view

It's been a few weeks since I've provided an update on the status of the canvas view launch. Our experiments with a small percentage of users have been going well, and we've been making some small changes and adjustments based on user feedback (such as reducing the width of the left nav). In the next few weeks we plan on ramping up the number of US English users with the canvas view.

In anticipation of this, we're going to hold a special IRC event on improving existing gadgets by adding a canvas view. During the two hour session, show us your XML and we'll offer suggestions on how you can turn it into a great canvas view gadget. And of course, its a great time to work through any issues you are having in developing canvas view gadgets. To join us, visit the #opensocial channel on irc.freenode.net next Tuesday (9/23) from 1-3 PDT. See you then!

Tuesday 19 August 2008

Cleaning the sandbox



As a quick heads-up, we'll be pushing a new implementation of the persistence API to the iGoogle sandbox. When this happens, it will effectively clear the data storage of any OpenSocial applications in the sandbox. Data stored in preferences will not be affected, nor will any data of applications in production.

Enjoy the fresh, clean scent of an empty datastore, and let us know if you encounter any issues in the iGoogle Developer Forum.

Monday 18 August 2008

iGoogle sandbox at 0.8



While the recent focus has been on the canvas view feature, exciting progress has been made on the OpenSocial front. Developers now have an opportunity to test out parts of the OpenSocial 0.8 specification in the sandbox. If you're interested in seeing what's changed in 0.8, check out the release notes. Not everything mentioned in the notes is implemented yet, so consider this a preview release.

If you haven't yet had a chance, this is a great time to try the Developer Application for OpenSocial (DAfOS). DAfOS lets you edit, save, and run snippets of gadget code. Best of all, there is a special version that supports OpenSocial 0.8. Here are some samples using the new idSpec class to get you started:
Over the next few weeks, stay tuned for more updates on the progress of 0.8 on iGoogle.

Friday 1 August 2008

Changes to inlined gadgets



In November, we announced the deprecation of inlined gadgets on iGoogle. Inlined gadgets filled a niche role in gadget development, a role that has become smaller as more features have been added to iGoogle and to the gadgets API.

To encourage developers to move their existing inlined gadgets to supported APIs, we're moving to the next phase in their deprecation. Within the next few weeks, inlined gadgets with few active users will no longer operate within iGoogle.

All other inlined gadgets will continue to operate, but the gadget XML will be in read-only mode, served out of Google's cache. It will still be possible to update these gadgets, by filing a request to recache the gadget in the legacy issue tracker. We strongly recommend that the authors of these gadgets move to supported APIs.

Please note that attempting to bypass the cache by importing external CSS, JavaScript and HTML is strongly discouraged. Gadgets that do this exclusively to bypass Google's caching may be disabled.

If you have questions or comments about the new behavior of inlined gadgets, please visit the developer forum.

Wednesday 16 July 2008

Experiments underway



In a previous post, I mentioned that iGoogle would begin rolling out the new canvas to a small percentage of users, as an experiment, leading up to the full U.S. launch. I'm pleased to tell you that these experiments have begun, and we've already started collecting feedback. As we ramp up the number of users with access, make sure to get your own canvas view-savvy gadgets ready. Social features are on track for a fall launch.

Stay tuned here and in the iGoogle Developer Forum for more details on the launch date as they become available.

Friday 27 June 2008

Supporting views while keeping compatibility



As we begin to ramp up support for the canvas view in iGoogle, it's important to remember that not all users will get access to the canvas view simultaneously.

If you've upgraded one of your gadgets to use views, you can keep backwards compatibility by keeping your old content section in your XML. Just make sure it appears first in your list of content sections and that it doesn't set a view attribute. Your new content sections with view="home" and view="canvas" can follow in any order.

<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="Backwards Compatibility">
</ModulePrefs>
<Content type="html">
<![CDATA[
Users without access to canvas view see this.
]]>
</Content>
<Content type="html" view="home">
<![CDATA[
Users with canvas view see this in the "home" view.
]]>
</Content>
<Content type="html" view="canvas">
<![CDATA[
Users with canvas view see this in the "canvas" view.
]]>
</Content>
</Module>

Once you've set up your gadget in this way, anyone who uses an iGoogle domain that doesn't yet have access to the canvas view can see a working version of your gadget. And those who have been moved to the new interface will see all the hard work you've put into your home and canvas views.

As an added bonus, you can use this technique now to develop gadgets in the developer sandbox that still maintain their old behavior in production. Whenever more users do get access to the canvas view, your gadgets will be ready to go.

Monday 23 June 2008

Details on the iGoogle Canvas View Launch



I thought I'd take a moment to clarify some details of upcoming iGoogle features and their release schedule. I've spoken to many of you who had questions about exactly what features would be available in iGoogle when canvas views are released. When canvas views and the new interface appear in production:
  • Existing _IG_ calls will continue to work normally, including all IG calls used to fetch remote content
  • The new gadgets feature 'views', gadgets.view and requestNavigateTo will be added to your repertoire of valid function calls
  • Declaring view="home,canvas" will become valid
  • The rest of the gadgets.* and opensocial.* APIs will not yet work. For example, all user customizations and data should be handled via user prefs and not app data for the time being
If you're working on a new gadget, or upgrading an older gadget to use the new canvas view, you should continue to use _IG_ calls, and keep the above list in mind. We are going to start testing the canvas view with a small percentage of our users this month, and are scheduled to roll it out to more users during July.

If you are developing a canvas view for our upcoming release, you should not use "<require feature="opensocial-X"/>" as gadgets that use gadgets.* and opensocial.* will not work in production until later this summer. Note that the sandbox will continue to support these features so that you can work on social features and gadgets in parallel and have all tools available to you.

Thanks again for all your contributions to iGoogle. If you have any questions or concerns, please let us know in our developer forum.

Tuesday 17 June 2008

IRC Office Hours



As part of our ongoing effort to offer top-notch support to iGoogle developers, we're formally introducing reoccurring IRC "office hours." Just point your favorite IRC client to irc.freenode.net and join the #opensocial channel to chat about all things OpenSocial — container support, the latest and greatest development techniques, upcoming changes to the specification, and more.

Our regular office hours will be every Tuesday and Thursday from 1:00 p.m. to 3:00 p.m. PST. During these times, one or more Googlers are guaranteed to be available in the #opensocial channel (look for the nicks kurrik, jasonacooper, rohitghatol, and api_dwh). In addition, we'll try to make ourselves available during other days and times as our schedules permit, so feel free to ping us if you see us.

Of course, we'll continue to answer questions in the forum as well, so you can choose the support mechanism that works best for you.

Wednesday 11 June 2008

Now with more sand! Updated Themes API



With all the layout and feature changes going on in iGoogle, we're happy to release an updated Themes API for developers. The API now allows customizations to the left navigation, chat, and gadget frame features in the sandbox, so you can customize even more of iGoogle. To get the full list of changes, please check out our updated developer's guide and reference.

If you have already created an existing theme, we encourage you to update it with the new attributes, test it in the sandbox, and resubmit it. Here's an example for how you can modify the chat list in your theme's XML file:

<attribute name="navbar.contacts.contact_color">#FF8080</attribute>
<attribute name="navbar.contacts.status_color">#FF8080</attribute>
<attribute name="navbar.contacts.hover_background_color">#FF0000</attribute>
<attribute name="navbar.contacts.card.border_color">#B30000</attribute>

As always, questions and feedback are welcome and encouraged in the Themes API group.

Some known bugs that we plan on fixing very soon are:
  • New buttons not yet available for themes
Thanks ahead of time for your feedback.

Thursday 5 June 2008

Chat in iGoogle sandbox



Today there's a new feature for the iGoogle developer sandbox: chat. It enables iGoogle sandbox users to chat not only with each other but the rest of their GTalk network right on their homepages. Your chat friends on iGoogle will be the same chat friends you see in your Gmail and Google Talk. Please note that this is still an early beta feature; we're adding it in the sandbox now so that we can get immediate feedback from our most active users — developers — and to also make sure that all our great themes are updated with this new feature in mind.

So please, report bugs and give us feedback. Here are some known bugs we plan to fix shortly:
  • chat roster not yet themed (please use classic skin for best experience)
  • presentation issues with links in IE7
  • not yet compatible with IE6 and Safari
  • some UI elements are placeholders for now
Thank you in advance for taking time to let us know what you find.

Tuesday 20 May 2008

iGoogle Roadmap



Since the launch of the developer sandbox, many of you have asked when the new features of iGoogle will find their way into users' hands. We plan to release canvas view and the new interface first, sometime in June. Those of you with existing applications should add a canvas view to take advantage of more screen real estate. And using canvas view, you can also monetize with ads.

Social features, including the OpenSocial API, updates, and notifications, will roll out later during the summer. As each of these releases approaches, we'll give you more specific dates. And as they become available, we'll roll out more updates to the interface and API to the sandbox.

Checkout these slides from the OpenSocial Summit for more details on iGoogle. If you have questions about iGoogle or the roadmap, please visit the iGoogle Developer Forum.

Up and running



Everything is back up and running in the sandbox, and should work just as before. If you're experiencing any issues, feel free to post in the iGoogle Developer Forum.

Unscheduled downtime



This is just a quick message to let everyone know that the developer sandbox is currently down. The outage should be relatively short — the sandbox should return sometime this afternoon. A follow-up to this message will appear when the sandbox is back online.

Friday 9 May 2008

There's no place like home, canvas



One of the features of the iGoogle sandbox is the notion of views, the ability to target content to different display areas. Views are supported across OpenSocial containers, but each container may support a different set of views. To help you re-use your gadgets, we've added a new views feature to the sandbox.

In the iGoogle sandbox, there are two views. The home view is the smaller of the two, comparable in size to iGoogle gadgets running outside of the sandbox. The canvas view presents a "full-screen" version of a gadget, filling all of the room available on the iGoogle page.

In other OpenSocial containers such as orkut, there are also multiple views. In orkut there is a profile view and a canvas view. The profile view is a similar size to the home view in iGoogle.

For some gadgets, it may be appropriate to display similar information on a user's orkut profile view as in a user's iGoogle home view, or across other views in OpenSocial containers. Previously, the solution to this problem was duplication of code, by creating two content sections, one for profile and one for home, both with the same content. Now, I'm happy to tell you that these views can be concatenated into one view by declaring view="home,profile" in a single content section.

This also means that gadgets that handle presentation logic for differently sized views in a single content section can extend that support to the canvas page by declaring view="home,canvas".

Details on concatenated views will soon appear in the section on views in the iGoogle Developer's Guide.

Tuesday 29 April 2008

IRC office hours for OpenSocial



Now that the iGoogle sandbox has been live for a week, you may have some questions about developing on the new platform. To help you get answers, we'll be holding official IRC office hours this Thursday from 10:00 a.m. to 3:00 p.m in the #opensocial channel on irc.freenode.net. We're looking to hear feedback and give development help for anything iGoogle, gadget, or OpenSocial related.

If you haven't tried out the sandbox yet, please check out the iGoogle getting started guide. If you would like information about IRC, check out this excellent IRC primer.

To recap:
What: IRC office hours
When: May 1st, 10:00 a.m. - 3:00 p.m. PDT
Where: irc.freenode.com#opensocial

See you there!

Friday 25 April 2008

Getting help and giving feedback



Now that many of you have had a chance to play in the sandbox, I thought I'd share some helpful tips on where to get help with development and how to give feedback.

Make sure to check out the iGoogle Developer Forum where you can meet and discuss gadget and OpenSocial development on iGoogle with me and your fellow developers. If you want an opinion on your latest gadget or help with a feature of the API, this is the place to go.

To give feedback on the new sandbox, or if you are having issues with the gadgets, or OpenSocial APIs, make sure to file an issue in the OpenSocial-resources issue tracker. If someone else has already reported the issue, give it a star in the interface and you'll be updated when the issue changes.

For providing feedback on the production version of iGoogle, to report bugs, or request changes to your gadgets in the directory, there is another issue tracker in the igoogle-legacy project.

See you in the forum!

Monday 21 April 2008

Welcome to the iGoogle Developer Blog



I'm pleased to welcome you to the new iGoogle Developer Blog. With the sandbox now open to all gadget developers, this blog will follow the model set by the orkut Developer Blog, providing updates on the status of the iGoogle sandbox, details on new features that have been pushed out to developers, and progress on the launch of new iGoogle features to its wide consumer audience.

For more information about the new sandbox, make sure to check out the getting started guide. If you have questions, comments, or suggestions, join the discussion in the iGoogle Developer Forum.

Enjoy!