phpgroupware-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[phpGroupWare-developers] Re: how to access phpgw via xml-rpc


From: David
Subject: [phpGroupWare-developers] Re: how to access phpgw via xml-rpc
Date: Thu, 19 Apr 2007 16:51:30 -0700 (MST)


>> Can someone please give me some tips for bringing phpgw xml-rpc server
>> to life, and accessing it from a client?
>>

> I will try to take a look at it later this evening

Seems that after a lot of RTFS, I've figured it out.
Seems you (please forgive my Python terminology) first have to create a 
ServerProxy object pointing to "http://hostname/xmlrpc.php";, then with this 
execute system.login with a single argument, a dict with the keys 'username' 
and 'password'. This call returns a dict with the keys 'sessionid' and 'kp3'. 
After that, one needs to instantiate another XML-RPC ServerProxy object, 
pointing to the URL "http://<sessionid>:<kp3>@hostname/xmlrpc.php". Subsequent 
calls with this new ServerProxy object will send the appropriate Auth http 
header, which will satisfy phpgw's XML-RPC authentication.

Then, one has access to all the methods which have been defined by phpgw files 
of the form /phpgwapi/inc/class.<classname>.inc.php, where such files in their 
class constructor set their attribute 'xmlrpc_methods' to an array of dicts, 
where each dict has the key 'name' and value is the name of the method.

For example, a call to phpgwapi.applications.read() returns a dict of installed 
applications, where each key is the application name (such as 'phpbrain', 
'todo', 'bookmarks' etc, and the corresponding value is a dict containing the 
application's status.

Now, the bad news. Given that the existing phpgw xmlrpc framework can only 
access methods defined in class constructors in the files 
/phpgwapi/inc/class.<classname>.inc.php, this means that pretty much none of 
the phpgw applications are registering any xml-rpc methods, ie, setting an 
attribute 'xmlrpc_methods' in their constructors.

So FWICT, the xml-rpc mechanism is working, authentication is working, but the 
apps just aren't doing their part of the job.

So given the assurance that the phpgw db schema isn't vulnerable to sporadic 
schema changes, it's probably best that I model the db tables as SQLObject 
classes, and access them that way.

If I'm missing something major, please hit me with the clue stick. I'm all ears.

Cheers
David
.

Sent from the phpGroupWare forums @ forums.phpGroupWare.org




reply via email to

[Prev in Thread] Current Thread [Next in Thread]