Using UserPref with URL content type gadgets

Following on from my previous post I needed to add a user preference to my gadget. By following the documentation here my previous example changed to be something like this:
<?xml version="1.0" encoding="UTF-8"?>
            title="My Simple Gadget" 
            description="Test gadget" 
            display_name="Profile ID" 
            href="http://yourappid.appspot.com/gadget.html" /> 

Note that I used the urlparam attribute so that the querystring used to fetch the gadget content would be something like

My GWT code could now read this userpref like this:
public void onModuleLoad() {
    String id = Window.Location.getParameter("id");
    . . . .

Unfortunately there is a minor issue with this. It seems that some gadget containers ignore the urlparam attribute. When the gadget is hosted in the iGoogle home page it works fine but in Blogger and some other places the id parameter was not coming through in the querystring. Instead you get something like like
Basically the UserPref name prefixed with up_. This meant a minor change to the GWT code:
public void onModuleLoad() {
    String id = Window.Location.getParameter("id");
    if (id == null) {
        id = Window.Location.getParameter("up_profileId"); 
    . . . .

It seems that Google have broken the URL type gadgets. The parameters are no longer sent in the URL to the server! See this iGoogle Developer blog post

This makes the above code rather useless. I'll be working on a new version...

According to this forum post the problem has been fixed temporarily. I think the advice is to use HTML content type gadgets if you want to use UserPrefs. Shame.

URL type gadgets are back for good! See this post. To summarize:
I've been talking with developers on the iGoogle team about the best way to go forward here and it looks like keeping UserPrefs in the query string for type url gadgets is the thing to do.


Anonymous said...


I'm trying to include a google gadget into my custom button for google toolbar. The how-to for that is mentioned at http://www.google.com/tools/toolbar/buttons/apis/howto_guide.html#gadgetpageurl.

The I can pass the url etc. information from the button to gadget as explained in the example. However, it seems to work only if the gadget content type html. For url type, the parameters are sent to gmodules site just right, but when the request the redirected from there to my site, the query string does not include url, host etc. Any suggestions?

Ratan Agrawala said...

do you know if we can pass the content url dynamically some how?