Last updated September 26, 2012. Created by heyrocker on April 27, 2010.
Edited by jackbravo, ximo. Log in to edit this page.

Things are moving along nicely, but there are still some pretty big areas that are missing or busted.

  • Authentication (Session working mostly, oAuth exists but has not been significantly tested)

Looking for support? Visit the Drupal.org forums, or join #drupal-support in IRC.

Comments

Testing with Services 3.x and 3.x-dev on Drupal 7
oAuth with REST - ok!
oAuth with XMLRPC - If you see "invalid signature" and are running on an alternate port, try this patch:
I'm not sure how to submit this formally - but it works for me. It could probably be made prettier.

diff -ur broken/oauth/lib/OAuth.php fixed/oauth/lib/OAuth.php
--- broken/oauth/lib/OAuth.php  2011-10-24 22:46:56.000000000 -0700
+++ fixed/oauth/lib/OAuth.php   2011-11-10 11:32:56.449376203 -0800
@@ -228,7 +228,14 @@
   function __construct($http_method, $http_url, $parameters=NULL) {
     $parameters = ($parameters) ? $parameters : array();
-    $parameters = array_merge( OAuthUtil::parse_parameters(parse_url($http_url, PHP_URL_QUERY)), $parameters);
+    $parts = parse_url($http_url, PHP_URL_QUERY);
+    if (isset($parts['host']) && isset($parts['port'])) {
+      $qq = strpos($parts['host'], ':'.$parts['port']);
+      if ($qq > 0) {
+       $parts['host'] = substr($parts['host'], $qq);
+      }
+    }
+    $parameters = array_merge( OAuthUtil::parse_parameters($parts), $parameters);
     $this->parameters = $parameters;
     $this->http_method = $http_method;
     $this->http_url = $http_url;
@@ -388,7 +395,9 @@
     if (($scheme == 'https' && $port != '443')
         || ($scheme == 'http' && $port != '80')) {
-      $host = "$host:$port";
+      if (!strpos($host, ':'.$port)) {
+       $host = "$host:$port";
+      }
     }
     return "$scheme://$host$path";
   }

Please @teunis, or someone with knowledge, document how to create and TEST services with OAuth authentication.
There are a lot of unfinished documents and broken links to videos all over Drupal.org but no official documents on how to do it and test it.

--
Jaime Alberto Silva
http://jaimealsilva.com