Services D6

Events happening in the community are now at Drupal community events on www.drupal.org.
brmassa's picture

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

brmassa's picture

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

amitaibu's picture

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

spaceboii's picture

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

braindancer's picture

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.

Small update

brmassa's picture

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?

gdd's picture

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?

g10's picture

What happened with the CVS, only branch 6.x is available ( 6.0.12 and 6.0.13 ) !!!!

API key usage

j.somers's picture

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

thewolrus's picture

Do you have plans to release this features for Drupal 5?

Please

swellbow's picture

I too would love to see this. Just joining the chorus. ;)

Yeah would be great to keep

jjjames's picture

Yeah would be great to keep the Drupal 5 version up to par too!
Thx

I am willing to help to

ajeancharles's picture

I am willing to help to create a version 5 version of these services

Sweet! Thanks :)

jjjames's picture

Sweet! Thanks :)

SOAP Server & Client

sukh.singh's picture

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

lsancheztapia's picture

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

Amoline's picture

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

RE: Missing Fields

lsancheztapia's picture

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

dianacastillo's picture

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

cotto's picture

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

jaimeah's picture

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 ?

dianacastillo's picture

Hi I found it , its drupanium.org thanks

log in and then delete

dianacastillo's picture

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

dianacastillo's picture

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

dianacastillo's picture

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

Services

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: