Building the Gadget XML File

The first element of the sample to set up is the core gadget architecture that will be used:

<Module>
   <ModulePrefs title="Chapter 4 Example"
                description="Displays some of the key concepts
                             learned in chapter 4"
                author="Jonathan LeBlanc"
                author_link="http://www.jcleblanc.com">
      <Require feature="opensocial-0.9"/>
      <Require feature="tabs" />
      <Require feature="minimessage"/>
      <Require feature="setprefs"/>
      <Locale lang="en" country="us" />
   </ModulePrefs>
   <UserPref name="contactMethod"
             default_value="email"
             datatype="hidden" />
   <UserPref name="contactEmail"
             default_value="None Entered"
             datatype="hidden" />
   <UserPref name="contactTwitter"
             default_value="None Entered"
             datatype="hidden" />
   <Content type="html" view="canvas, home, profile">
      <![CDATA[

      ]]>
   </Content>
</Module>

Within the ModulePrefs node, we set our metadata about the gadget and then define the JavaScript libraries required to run the gadget. These match the features we are using, which include OpenSocial 0.9, tabs, minimessage, and setprefs. Next, we indicate support for US-based English in our Locale element.

Since we will be using stored user preferences, we set the UserPref elements next, specifying the three strings we would like to temporarily store (contact method, email, and Twitter). All three strings have default values set (in case the user doesn’t input his contact information) and are hidden.

Last, we create a Content section to host the HTML, CSS, and JavaScript of the gadget inline to the ...

Get Programming Social Applications now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.