Guys,
Scott Nelson (snelson) included me as one of the maintainers last friday and im glad to announce a new version of Services module for D6 (in fact, i released 2 versions today). The 6.x 0.11 contains several bugs fixed, a new security fix and some nice and long waited features:
* user.get service
* user.save service
* user.delete service
* file.get service
* file.getNodeFiles service
* menu.get service
* Several services were renamed for consistency, including node.load service to node.get
* node and user services now have a very granular permissions
* views services reviewed and some new features added (offset and limit and a new permission check)
* "#file" attribute for services to allow them to put into another file the callback functions
* Drupal code compliance
The 6.x 0.11is more powerful, faster and consume MUCH less memory.
Hopefully, 6.x 0.11 will be on of the last releases before the final 1.0! So i hope all of you test it hard. If you already reported a bug on the issues list, take another test using this version and update the issue.
regards,
massa
PS 1: What about the D5 versions? well, i dont even have a D5 test site anymore. So i will need someone else to this job
PS 2: We need to fix some documentation. It will be done bit to bit

Comments
Features missing
Guys,
i forgot to post a list of missing features that i plan to someday include:
* enable/disable each service
* enable/disable each service PER user/
* expand services list a lot, specially regarding taxonomy and comments. but node, path and menu services still need some work
* OAuth integration (there are some patches available)
* MAYBE integrate other servers, like SOAP
I will be glad to check and test any patch about these features.
regards,
massa
I track the Srevices CVS via
I track the Srevices CVS via RSS and dude you are working fast! :) It's a good thing for the services module, as it seemed stuck in the past few month.
Keep on the good job...
I agree
that you're working fast.... Nice!
good stuff!
__
Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so. - Douglas Adams
__
Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so. - Douglas Adams
some remarks
Hey massa,
Thanks for your update!
Just some remarks:
I found user.save function accepts UID for some reason instead of account information in service definition. Was this intended or you just missed something? in actual function it expects $account for passing it to user_save directly. So probably this is service declaration problem.
.load sounds better and reasonable than .get to me ;) no offence, just my note
Hope you can patch this user.save service soon.
Thanks,
BD.
http://www.braindancer.org
Small update
brain dancer,
1* user.save was wrong. i tested another thing it on my pc then i forgot to return the right code. Fixed. Other services are also somewhat wrong, because i commited the testing code. I will make a deep checkup later.
2* .get is more consistent with other Drupal services (system.getVariable, user.get, comment.get, file,get) and other services, like flickr.
Guys,
im planning to make OAuth the main and only authentication system. Im studying the codes to make the integration seamless.
regards,
massa
Only?
While I have no issue with making oAuth the primary/default authentication system, it seems a horrible mistake to make it the ONLY one. I would think some kind of pluggable authentication would be best option. oAuth is not going to work for every installation or every sitution, and to make that assumption seems needlessly limiting.
CVS went wrong?
What happened with the CVS, only branch 6.x is available ( 6.0.12 and 6.0.13 ) !!!!
API key usage
Sorry if this is off-topic in this thread, but is it possible to provide a sample of the API key usage for D6?
I can see that the method signature for "user.login" is "['struct', 'string', 'string', 'string', 'string', 'string', 'string', 'string']" but there doesn't seem to be any example or documentation whatsoever that defines which parameter is what. I assume the strings are hash, timestamp, nonce, methodname, sessionid, username, password but I have no idea what the 'struct' could be.
Drupal 5
Do you have plans to release this features for Drupal 5?
Please
I too would love to see this. Just joining the chorus. ;)
Yeah would be great to keep
Yeah would be great to keep the Drupal 5 version up to par too!
Thx
I am willing to help to
I am willing to help to create a version 5 version of these services
Sweet! Thanks :)
Sweet! Thanks :)
SOAP Server & Client
Hello to all drupal developers. Firstly thumbs up for creating such a nice module. It is a great module with less documentation for example I am not able to find single help for creating Webservice as SOAP Client and SOAP Server. It is really a need for today scenario. If anybody know the link or have some knowledge please put all together here so that everybody can have access to that.
Sukh Singh
Server error. Wrong number of method parameters. XML-RPC
Hello,
I'm sending this XML:
POST /drupal/services/xmlrpc HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: 192.168.1.200
Content-Length: 327
Content-Type: text/xml; charset=utf-8
<?xml version="1.0" encoding="UTF-8" ?>
<methodCall>
<methodName>node.get</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>nid</name>
<value><int>686</int></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>
For getting a node with id:686, but I get the error: "Server error. Wrong number of method parameters."
I can't find the error.
But the method node.save works fine, I can insert articles in Drupal.
Luis.
Missing Fields
Hi Luis,
I guess it depends on your service configuration, but I don't see the sessId, which is required with the "out of the box" configuration. As I know it, you:
1) connect to your Drupal Site using the "system.connect" which gives you the "sessId" for the connection.
2) Using the sessId from your connection, you call the "user.login", which returns a new sessId.
3) Now, using the sessId from your login, you should be able to call the node.get.
Again, this is based on your service configuration if your requiring a sessId.
Home » Administer » Site building » Services
See if "Use sessId" is checked and "Use keys" is checked.
Hope that points you in the right direction.
Regards,
Aaron
www.molinesoftware.com
www.versionagent.com
RE: Missing Fields
Hello Aaron,
Thanks! it works.
Is it possible to create a node by XML RPC with a particular taxonomy term (the term is created into Drupal) ?
I'm using Imagefield-CCK for having a image field, is it posible to create a node with a image sending all by XML RPC ??
If not how can I handle these situations?
Regards,
Luis.
access denied to delete
I am trying to do a user.delete with the following code and get - access denied for user anonymous . can someone send me an example of how to do it? thank you
<?xml version="1.0"?><methodCall>
<methodName>user.delete</methodName>
<params>
<param>
<struct>
<member>
<name>uid</name>
<value><int>50</int></value>
</member>
</struct>
</param>
</params>
</methodCall>
You'll need to have the api
You'll need to have the api client log in before you can delete anything, otherwise it'd be possible for anyone to delete content on a Drupal site that exposed a Services endpoint with node.delete.
Try to use this reference
Perhaps this will be useful try: doing some research at drupanium.com
It helped me to get some rest calls working.
What are you using for testing? There are some useful utilities for google chrome. Lastly, you probably can't do many things as an anonymous user: but perhaps you can combine it with rules to get the desired results.
Were are you located?
drupanium.com ?
Hi I found it , its drupanium.org thanks
log in and then delete
okay, I log in and I get back a session id. how do I pass that session id in with the delete request? If I dont send it I still get access denied.
for testing
I use Firefox poster for testing . I dont want to have to do it as anonymous, I log in but then I dont know how to tell it that I am logged in in the next request. I am in DC (USA)
i had to modify to use session authentication
I had to check on the box admin/structure/services "use session authentication" and now after I login as admin I can send the delete request and it works . thanks