Using Zoe's XML-RPC Interface



By Mark Woods, November 8, 2002

Note: Some of the method names have changed in recent releases of Zoe. This document may be out of date in some cases. Please refer to Raphael's Python demo as the definitive reference for the moment.

Paul Scott Murphy has provided an XML-RPC interface for the latest release of Zoe. I spent a few minutes today trying it out from Radio. It took me a little while to get the hang of it. The only documentation is a Python demo Paul provided; I do not know Python. Once I gathered enough Python info to understand what was going on, everything seemed to work very smoothly. I have documented the interfaces and provided a sample script for working with Zoe's XML-RPC interface. The scripts can be used from Radio or Frontier. The interface docs will have to be mapped to your language of choice. Here is a table summarizing the methods available in the interface as of this writing.

Method Parameters Return Description
timeline.objectsOfClassWithDay string "alt.dev.szmail.SZEnvelope", dateTime date string [] Returns an array of object IDs corresponding to mail items for the specified date.
store.objectWithId string objectID struct mailItem Returns a structure containing the specified mail item. Structure members represent different mail elements (see screenshot below).
mail.search string searchString string [] Returns an array of object IDs corresponding to mail items matching the search string.
store.objectsWithSpecification struct specification string [] Returns an array of object IDs corresponding to mail items matching the search string. See the spec on specification for more details.


Zoe Mail Item Format

Zoe Mail Item

A Usertalk Client Example

Here is a Usertalk script that I built to test the Zoe XML-RPC interface on my machine. Although the store.objectsWithSpecification method works, it is not returning any results for me. I think I am following Paul's directions for creating a specification correctly. Zoe certainly isn't reporting a fault. Either Zoe is not responding correctly or I have the structure right, but the values are wrong. If anybody has more success with this, please let me know.

Note: Zoe's XML/RPC interface requires a login. That only works if you have configured the login service (with a userid and password) on Zoe's Preferences page. You can specify any id and password there. Be sure to use the same userid and password in the authorization header of your http packet.