<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://groups.drupal.org" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Services</title>
 <link>http://groups.drupal.org/services</link>
 <description>A working group for the Services module and related modules.</description>
 <language>en</language>
<item>
 <title>Abstracted Web Services API for Drupal 7</title>
 <link>http://groups.drupal.org/node/9439</link>
 <description>&lt;p&gt;This is the beginnings of a design specification proposal for an abstracted API for implementing web services within Drupal 7.  This allows Drupal to act as both a server and client for web services in any protocol medium (XML-RPC, RDF, RSS, JSON, etc). It is the combined efforts from a number of people at Druplicon including Marc Ingram, Scott Nelson, Nedjo Rogers, Dmitri Gaskin, etc.&lt;/p&gt;
&lt;h3&gt;Services API&lt;/h3&gt;
&lt;p&gt;The Services API allows you to host local servers in different protocols, as well as make web service calls to external servers. In all four of these functions, if you pass a $source and $protocol, the correct hook_client function will be called to make these external calls. These functions reside in services.inc.&lt;/p&gt;
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;services_get_server($server = NULL)&lt;/p&gt;
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;Returns all servers available to the local system (XML-RPC, JSON, RDF, etc). If a $server is given, it would return all information regarding that server.  Only local functionality here.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;services_get_services($source = NULL, $protocol = NULL)
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;Calls hook_services and retrieves all services within the system (external on the given protocol, or local)
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;services_get_service($method, $source = NULL, $protocol = NULL);
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;Returns all information regarding the given service (either externally or locally)
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;services_call_service($method, $parameters = array(), $source = NULL, $protocol = NULL)
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;Uses services_get_service to retrieve information about the method, and then calls its method (either externally or locally)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Hooks&lt;/h4&gt;
&lt;p&gt;These are the hooks that become available by the Services API:&lt;/p&gt;
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;hook_services&lt;/p&gt;
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;An array of all services with the key being the method name of the service (node.load, node.save, etc), and then the following properties:&lt;/p&gt;
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;#description&lt;/p&gt;
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;A short description of what the service does
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;#access
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;The permission the user is required to call the service
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;#callback
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;The callback function when the service is called
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;#type
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;The return type of the service call (array, string, number)
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;hook_servers
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;An array of all servers with the key being the short name of the server (rdf, xmlrpc, amfphp, etc), with the following properties:&lt;/p&gt;
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;#description&lt;/p&gt;
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;A short description of the server
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;#title
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;The title of the server (RDF, XML-RPC, JSON, etc)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Modules&lt;/h3&gt;
&lt;p&gt;The following are the new modules that are implemented:&lt;/p&gt;
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;Services module&lt;/p&gt;
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;Implements the administration interface to test services
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;services_menu for entry points to servers (example.com/services/%server)
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;services_perm for a user permission to &quot;administer services&quot;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;xmlrpc_services Module
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;Implements xmlrpc_servers function to implement XML-RPC server
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;Implements xmlrpc_client to query a remote XML-RPC server
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;json_services Module
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;Implement json_servers function to imlement JSON server
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;Implements json_client to query a remote JSON server?
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;rdf_services Module
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;Implement rdf_servers function to implement RDF server
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;Implement rdf_client function to query a remote RDF server
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If we wanted, all of these modules could be implemented into the Services module through the same hook (services_servers).  This would allow us to only add one module to Drupal core as opposed to four.  Nedjo brought up some good comments about why separating them is a good thing.&lt;/p&gt;
&lt;h3&gt;Hook Implementations&lt;/h3&gt;
&lt;p&gt;Implement hook_services for certain modules&lt;/p&gt;
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;node_services
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;comment_services
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;taxonomy_services
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;menu_services
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;search_services
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;system_services
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;user_services
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot;&gt;BlogAPI would implement hook_services for the MovableType compatibility, when upgrading, enable Services and XML-RPC if BlogAPI is enabled&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Aggregator?&lt;/h3&gt;
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;Is a client for an RSS server?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;And an RSS Module?&lt;/h3&gt;
&lt;ul&gt;
&lt;li dir=&quot;ltr&quot;&gt;Is a server for RSS clients?&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9439#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/4288">drupal7</category>
 <category domain="http://groups.drupal.org/taxonomy/term/839">RDF</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1470">services</category>
 <category domain="http://groups.drupal.org/taxonomy/term/544">xmlrpc</category>
 <group domain="http://groups.drupal.org/semantic-web">Semantic Web</group>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Thu, 06 Mar 2008 06:41:56 +0000</pubDate>
 <dc:creator>Rob Loach</dc:creator>
 <guid isPermaLink="false">9439 at http://groups.drupal.org</guid>
</item>
<item>
 <title>ActionScript 3 framework for interfacing with Drupal</title>
 <link>http://groups.drupal.org/node/14333</link>
 <description>&lt;p&gt;Thomas Saunders and I are releasing our ActionScript 3 (Flash 9/CS 3/Flex 2) framework for interfacing with Drupal sites running the Services and AMFPHP modules.&lt;/p&gt;
&lt;p&gt;Our framework handles some of the basic aspects of connecting a Flash application with a Drupal site, invoking service methods, and retrieving data.&lt;/p&gt;
&lt;p&gt;To download the ActionScript class files or view the API documentation, please see our site at:&lt;br /&gt;
&lt;a href=&quot;http://thirdavedesign.com/drupalsite&quot;&gt;http://thirdavedesign.com/drupalsite&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Please let us know if you find this useful, and if you have any questions or suggestions.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/14333#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/2741">ActionScript</category>
 <category domain="http://groups.drupal.org/taxonomy/term/422">flash</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1523">Flex</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1470">services</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Thu, 28 Aug 2008 10:36:27 +0000</pubDate>
 <dc:creator>detour</dc:creator>
 <guid isPermaLink="false">14333 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Argument is cut short</title>
 <link>http://groups.drupal.org/node/14242</link>
 <description>&lt;p&gt;I had this problem before with the views.getViews and node.load services using Flash AS3. I would need to generate an Array to pass even a single string argument or it would only utilise the very first digit?!.&lt;/p&gt;
&lt;p&gt;AS3 code:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;var obj:Object = [&amp;quot;123&amp;quot;];&lt;br /&gt;var nodeArg:Array = new Array( obj );&lt;/p&gt;
&lt;p&gt;drupal.service(loadContent,onFault,&amp;quot;node.load&amp;quot;, nodeArg[0],[&amp;#039;nid&amp;#039;,&amp;#039;title&amp;#039;]);&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;resulting argument = &quot;123&quot;&lt;/p&gt;
&lt;p&gt;I&#039;m using the same kind of code as when I load nodes to now save them.&lt;/p&gt;
&lt;p&gt;AS3 code:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;       public function init() {&lt;br /&gt;          var gatewayUrl:String = &amp;quot;http://www.example.com/theLab2/services/amfphp/gateway.php&amp;quot;;&lt;br /&gt;           gateway = new RemotingService(gatewayUrl);&lt;br /&gt;            var responder:Responder = new Responder(onResult, onFault);&lt;/p&gt;
&lt;p&gt;         var obj:Object = new Object();&lt;br /&gt;            obj = [&amp;#039;00:00:10&amp;#039;]&lt;br /&gt;          var arg:Array = new Array( obj );&lt;/p&gt;
&lt;p&gt;           var edit:Object = new Object();&lt;br /&gt;           edit.type = &amp;quot;game&amp;quot;;&lt;br /&gt;         edit.title = &amp;quot;game_test&amp;quot;;&lt;br /&gt;           //edit.field_date_timer = arg[0];&lt;br /&gt;         edit.field_integer_time = arg[0];&lt;br /&gt;         trace(arg[0]);&lt;/p&gt;
&lt;p&gt;          gateway.call(&amp;quot;node.save&amp;quot;, responder, edit);&lt;br /&gt;     }&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;resulting argument = &quot;0&quot;&lt;/p&gt;
&lt;p&gt;An error is kicked up if I only supply a String as an argument and I get the first single digit if I use an Array?! Why does it do this to a String? I&#039;m really stuck here. If I haven&#039;t explained thi well, please let me know ;)&lt;br /&gt;
Cheers,&lt;br /&gt;
Beechy&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/14242#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Mon, 25 Aug 2008 09:26:03 +0000</pubDate>
 <dc:creator>BeechyBoy</dc:creator>
 <guid isPermaLink="false">14242 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Services error handling</title>
 <link>http://groups.drupal.org/node/14031</link>
 <description>&lt;p&gt;There doesn&#039;t seem to be an elegant way of dealing with errors. &lt;code&gt;services_method_call()&lt;/code&gt; invokes &lt;code&gt;services_error($message)&lt;/code&gt;, which in turns invokes a server-specific method to output an error in the server-native format. However, this server-native error lives in the same space as legitimate results.&lt;/p&gt;
&lt;p&gt;It seems with this system that it is the service server&#039;s responsibility to determine whether the data it is being passed is an error message that it generated previously, or not. If this is the way things are supposed to work, this means that there is a chance of confusion between legitimate data and an error structure. Right now, e.g. json_server.module looks in the data for the presence of an &#039;#error&#039; key to determine error status.&lt;/p&gt;
&lt;p&gt;Oddly enough, this seems to follow a bad example set by core&#039;s xmlrpcs.inc, which similarly checks if the returned value is an object that has its -&amp;gt;is_error key set. In this case, it&#039;s still a stupid idea, but at least there you know you&#039;re only working with the XMLRPC server and thus which key name to avoid.&lt;/p&gt;
&lt;p&gt;In the case of services, there are an infinite number of server types available, each with its own hook_server_error() and thus each with its own method of indicating errors. This means method implementors are working in a data minefield where adding arbitrary keys to your return value can trigger certain server back ends to interpret the result as errors.&lt;/p&gt;
&lt;p&gt;(PS: What&#039;s with all the hash marks? Every single hook_services property is defined with &#039;#name&#039; rather than &#039;name&#039;. This convention is used in Form API to allow properties (&#039;#name&#039;) to share a namespace with form element names (&#039;name&#039;). In services.module, there is no such namespace sharing, and hash marks are used unnecessarily. The JSON server even includes these hash marks in its output. Icky.)&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/14031#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Fri, 15 Aug 2008 23:27:46 +0000</pubDate>
 <dc:creator>Steven</dc:creator>
 <guid isPermaLink="false">14031 at http://groups.drupal.org</guid>
</item>
<item>
 <title>PHP XML-RPC Client</title>
 <link>http://groups.drupal.org/node/13998</link>
 <description>&lt;p&gt;Well there seems to be a lack of simple examples or documentation on connecting a PHP XML-RPC client to Drupal Services.  If this example exists, I could not find it.&lt;/p&gt;
&lt;p&gt;Here is my example code:&lt;br /&gt;
&lt;a href=&quot;http://gregbosen.org/blog/drupal-services-php-xml-rpc-example&quot; title=&quot;http://gregbosen.org/blog/drupal-services-php-xml-rpc-example&quot;&gt;http://gregbosen.org/blog/drupal-services-php-xml-rpc-example&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Please comment on it, if you have suggestions.&lt;/p&gt;
&lt;p&gt;I wonder if this should be on the Example page in the handbook?&lt;/p&gt;
&lt;p&gt;G&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/13998#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Thu, 14 Aug 2008 23:47:16 +0000</pubDate>
 <dc:creator>tomhung</dc:creator>
 <guid isPermaLink="false">13998 at http://groups.drupal.org</guid>
</item>
<item>
 <title> - DrupleX - </title>
 <link>http://groups.drupal.org/node/13907</link>
 <description>&lt;p&gt;my little drupal node editor built in flex check it out let me know what you think&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.reece-tech.com/druplex/flex/&quot;&gt; Druplex&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/13907#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Tue, 12 Aug 2008 02:11:25 +0000</pubDate>
 <dc:creator>Reecex</dc:creator>
 <guid isPermaLink="false">13907 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Service browser from front-end?</title>
 <link>http://groups.drupal.org/node/13859</link>
 <description>&lt;p&gt;How would one go about setting up access to the service browser from the front-end?  Or at the very least, call a service and see the returned object?&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/13859#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Sat, 09 Aug 2008 22:11:18 +0000</pubDate>
 <dc:creator>BradWaite</dc:creator>
 <guid isPermaLink="false">13859 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Configuring Services module for Security</title>
 <link>http://groups.drupal.org/node/13825</link>
 <description>&lt;p&gt;&lt;a href=&quot;http://drupal.org/user/77320&quot;&gt;Marc Ingram&lt;/a&gt; has written up a great article detailing how to secure your service setup: &lt;a href=&quot;http://www.trellon.com/blog/configuring-drupal-web-services&quot;&gt;Web services in Drupal: Configuring Services module for security&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Awesome article, Marc!&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/13825#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Fri, 08 Aug 2008 12:48:32 +0000</pubDate>
 <dc:creator>Rob Loach</dc:creator>
 <guid isPermaLink="false">13825 at http://groups.drupal.org</guid>
</item>
<item>
 <title>How best to implement a service with xml attributes</title>
 <link>http://groups.drupal.org/node/13791</link>
 <description>&lt;p&gt;Hi,&lt;br /&gt;
I&#039;m very new to drupal services and I&#039;ve been trying to use the rest_server module and it seems to work pretty well for my purposes (just getting the data out rather than putting it in). I&#039;m now getting to the point where I&#039;d like to be able to add attributes to the xml elements in the response, but I&#039;d like these to be extensible to other server modules if possible (so i&#039;d like to do it in my service module rather than implement a new server.&lt;/p&gt;
&lt;p&gt;I&#039;d like to get a response along these lines with attributes embedded within the element tags (see xml code below). Does this make sense to anybody, or am I on completely the wrong track and should I do this as a specific server (the difficulty is the attributes actually relate to the data being served, not the way in which it&#039;s being served).&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;&amp;lt;response success=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;conceptSet searchTerm=&amp;quot;Abies alba&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;concept dataSchemaConcept=&amp;quot;DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/HigherTaxa/HigherTaxon/HigherTaxonName&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;name id=&amp;quot;106415&amp;quot; relationtype=&amp;quot;&amp;quot; id2=&amp;quot;&amp;quot; name=&amp;quot;&amp;quot;&amp;gt;&amp;lt;![CDATA[Abies alba@authorMill.]]&amp;gt;&amp;lt;/name&amp;gt;&lt;br /&gt;   &amp;lt;status&amp;gt;&amp;lt;![CDATA[accepted]]&amp;gt;&amp;lt;/status&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;lt;reference id=&amp;quot;500000&amp;quot;&amp;gt;&amp;lt;![CDATA[Euro+Med preliminary checklist as merged from Flora Europaea, Med-Checklist and Flora of Macaronesia (for families not yet treated in Med-Checklist, the distributional record does not include N Africa and SW Asia)..]]&amp;gt;&amp;lt;/reference&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;lt;/concept&amp;gt;&lt;br /&gt;&amp;lt;concept dataSchemaConcept=&amp;quot;DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/HigherTaxa/HigherTaxon/HigherTaxonName&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;name id=&amp;quot;106415&amp;quot; relationtype=&amp;quot;&amp;quot; id2=&amp;quot;&amp;quot; name=&amp;quot;&amp;quot;&amp;gt;&amp;lt;![CDATA[Abies alba@authorMill.]]&amp;gt;&amp;lt;/name&amp;gt;&lt;br /&gt; &amp;lt;status&amp;gt;&amp;lt;![CDATA[accepted]]&amp;gt;&amp;lt;/status&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;lt;reference id=&amp;quot;7500000&amp;quot;&amp;gt;&amp;lt;![CDATA[Jury 2005.]]&amp;gt;&amp;lt;/reference&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;lt;/concept&amp;gt;&lt;br /&gt;&amp;lt;/conceptSet&amp;gt;&lt;br /&gt;&amp;lt;/response&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Let me know if it&#039;d be better to post this elsewhere.&lt;br /&gt;
thanks,&lt;br /&gt;
Kehan&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/13791#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/419">attributes</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1470">services</category>
 <category domain="http://groups.drupal.org/taxonomy/term/3320">webservices</category>
 <category domain="http://groups.drupal.org/taxonomy/term/410">xml</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Thu, 07 Aug 2008 09:24:11 +0000</pubDate>
 <dc:creator>kehan@drupal.org</dc:creator>
 <guid isPermaLink="false">13791 at http://groups.drupal.org</guid>
</item>
<item>
 <title>File upload flash to drupal</title>
 <link>http://groups.drupal.org/node/13781</link>
 <description>&lt;p&gt;This is a proof of concept for file upload using flash 8 and drupal 6 + amfphp&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
Limitations&lt;br /&gt;
The filename has to be unique so it can be matched when saving the node&lt;br /&gt;
File upload in flash uses FileData, flash 9 should be able to change this to Files so we (probably) can use the build in file upload?
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Flash code&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;var fileListener:Object = new Object();&lt;/p&gt;
&lt;p&gt;fileListener.onSelect = function(file:FileReference):Void {&lt;br /&gt;&amp;nbsp; // second (&amp;quot;files&amp;quot;) and third (false) parameter only work in flash 9&lt;br /&gt;&amp;nbsp; // file.upload has no return value so you have to pass a unique name (see drupal code)&lt;br /&gt;&amp;nbsp; file.upload(&amp;quot;http://example.com/servicefileupload/&amp;quot; + apiKey + &amp;quot;/&amp;quot; + sessId + &amp;quot;/uniquefilename&amp;quot;, &amp;quot;files&amp;quot;, false);&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;fileListener.onComplete = function(file:FileReference):Void {&lt;br /&gt;&amp;nbsp; createNode();&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;uploadtest.onRelease = function () {&lt;br /&gt;&amp;nbsp; var fileRef:FileReference = new FileReference();&lt;br /&gt;&amp;nbsp; fileRef.addListener(fileListener);&lt;br /&gt;&amp;nbsp; fileRef.browse([{description: &amp;quot;CV&amp;quot;, extension: &amp;quot;*.doc;*.docx;*.pdf;*.rtf&amp;quot;}]);&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;function createNode():Void {&lt;br /&gt;&amp;nbsp; var nsoll = new Object;&lt;br /&gt;&amp;nbsp; nsoll.nid = 0;&lt;br /&gt;&amp;nbsp; nsoll.uid = drupal_UserId;&lt;br /&gt;&amp;nbsp; nsoll.name = drupal_UserName;&lt;br /&gt;&amp;nbsp; nsoll.changed = true;&lt;br /&gt;&amp;nbsp; nsoll.type = &amp;#039;nodetype&amp;#039;;&lt;br /&gt;&amp;nbsp; nsoll.title = &amp;#039;title&amp;#039;;&lt;br /&gt;&amp;nbsp; nsoll.body = &amp;#039;body&amp;#039;;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; nsoll.field_naam = new Array();&lt;br /&gt;&amp;nbsp; nsoll.field_naam[0] = new Array();&lt;br /&gt;&amp;nbsp; nsoll.field_naam[0][&amp;#039;value&amp;#039;] = &amp;#039;mijn naam&amp;#039;;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; nsoll.files = new Array();&lt;br /&gt;&amp;nbsp; nsoll.files[0] = new Array();&lt;br /&gt;&amp;nbsp; nsoll.files[0][&amp;#039;fid&amp;#039;] = 0;&lt;br /&gt;&amp;nbsp; nsoll.files[0][&amp;#039;list&amp;#039;] = 1;&lt;br /&gt;&amp;nbsp; nsoll.files[0][&amp;#039;description&amp;#039;] = &amp;#039;uniquefilename&amp;#039;; // same as above&lt;br /&gt;&amp;nbsp; nsoll.files[0][&amp;#039;weight&amp;#039;] = 0;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; var pc:PendingCall = node.save(apiKey, sessId, nsoll);&lt;br /&gt;&amp;nbsp; pc.responder = new RelayResponder(this, &amp;quot;nodeSave_Result&amp;quot;, &amp;quot;nodeSave_Fault&amp;quot;);&lt;/p&gt;
&lt;p&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;service.module additions&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;// in function services_menu() {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; // fileupload&lt;br /&gt;&amp;nbsp; $items[&amp;#039;servicefileupload/%&amp;#039;] = array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;access arguments&amp;#039; =&amp;gt; array(&amp;#039;access services&amp;#039;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;page callback&amp;#039; =&amp;gt; &amp;#039;services_servicefileupload&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;page arguments&amp;#039; =&amp;gt; array(2),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;type&amp;#039; =&amp;gt; MENU_CALLBACK,&lt;br /&gt;&amp;nbsp; );&lt;/p&gt;
&lt;p&gt;// new stuff&lt;/p&gt;
&lt;p&gt;function services_servicefileupload($arg0, $arg1, $arg2) {&lt;/p&gt;
&lt;p&gt;// $arg2 is the new name of the file&lt;br /&gt;// apiKey and sessId aren&amp;#039;t checked for the moment!&lt;/p&gt;
&lt;p&gt;&amp;nbsp; global $user;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; if (is_uploaded_file($_FILES[&amp;#039;Filedata&amp;#039;][&amp;#039;tmp_name&amp;#039;])) {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Begin building file object.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file = new stdClass();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file-&amp;gt;filename = file_munge_filename(trim(basename($_FILES[&amp;#039;Filedata&amp;#039;][&amp;#039;name&amp;#039;]), &amp;#039;.&amp;#039;), $extensions);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file-&amp;gt;filepath = $_FILES[&amp;#039;Filedata&amp;#039;][&amp;#039;tmp_name&amp;#039;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file-&amp;gt;filemime = $_FILES[&amp;#039;Filedata&amp;#039;][&amp;#039;type&amp;#039;];&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Rename potentially executable files, to help prevent exploits.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (preg_match(&amp;#039;/\.(php|pl|py|cgi|asp|js)$/i&amp;#039;, $file-&amp;gt;filename) &amp;amp;&amp;amp; (substr($file-&amp;gt;filename, -4) != &amp;#039;.txt&amp;#039;)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file-&amp;gt;filemime = &amp;#039;text/plain&amp;#039;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file-&amp;gt;filepath .= &amp;#039;.txt&amp;#039;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file-&amp;gt;filename .= &amp;#039;.txt&amp;#039;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If the destination is not provided, or is not writable, then use the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // temporary directory.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (empty($dest) || file_check_path($dest) === FALSE) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $dest = file_directory_temp();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file-&amp;gt;source = $source;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file-&amp;gt;destination = file_destination(file_create_path($dest .&amp;#039;/&amp;#039;. $arg2), $replace);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file-&amp;gt;filename = $arg2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file-&amp;gt;filesize = $_FILES[&amp;#039;Filedata&amp;#039;][&amp;#039;size&amp;#039;];&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Move uploaded files from PHP&amp;#039;s upload_tmp_dir to Drupal&amp;#039;s temporary directory.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // This overcomes open_basedir restrictions for future file operations.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file-&amp;gt;filepath = $file-&amp;gt;destination;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!move_uploaded_file($_FILES[&amp;#039;Filedata&amp;#039;][&amp;#039;tmp_name&amp;#039;], $file-&amp;gt;filepath)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form_set_error($source, t(&amp;#039;File upload error. Could not move uploaded file.&amp;#039;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; watchdog(&amp;#039;file&amp;#039;, &amp;#039;Upload error. Could not move uploaded file %file to destination %destination.&amp;#039;, array(&amp;#039;%file&amp;#039; =&amp;gt; $file-&amp;gt;filename, &amp;#039;%destination&amp;#039; =&amp;gt; $file-&amp;gt;filepath));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If we made it this far it&amp;#039;s safe to record this file in the database.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file-&amp;gt;uid = $user-&amp;gt;uid;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file-&amp;gt;status = FILE_STATUS_TEMPORARY;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file-&amp;gt;timestamp = time();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; drupal_write_record(&amp;#039;files&amp;#039;, $file);&lt;/p&gt;
&lt;p&gt;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;node_service.module additions&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;// $file-&amp;gt;description is used to match the file uploaded by flash since we need the fid&lt;br /&gt;// only tested this for creating nodes, no idea what happens if you try to save an existing node :/&lt;/p&gt;
&lt;p&gt;function node_service_save($edit) {&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; // validate node&amp;nbsp; &lt;br /&gt;&amp;nbsp; node_validate($edit);&lt;/p&gt;
&lt;p&gt;&amp;nbsp; if ($errors = form_get_errors()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return services_error(implode(&amp;quot;\n&amp;quot;, $errors));&lt;br /&gt;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; $node = node_submit($edit);&lt;br /&gt;&amp;nbsp; node_save($node);&lt;/p&gt;
&lt;p&gt;&amp;nbsp; if (is_array($node-&amp;gt;files)) {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ($node-&amp;gt;files as $fid =&amp;gt; $file) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Convert file to object for compatibility&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file = (object)$file;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $result = db_query(&amp;#039;SELECT DISTINCT f.fid FROM {files} f WHERE f.status = 0 AND f.filename = \&amp;#039;%s\&amp;#039;&amp;#039;, $file-&amp;gt;description);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ($f = db_fetch_object($result)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $file-&amp;gt;fid = $f-&amp;gt;fid;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; db_query(&amp;quot;INSERT INTO {upload} (fid, nid, vid, list, description, weight) VALUES (%d, %d, %d, %d, &amp;#039;%s&amp;#039;, %d)&amp;quot;, $file-&amp;gt;fid, $node-&amp;gt;nid, $node-&amp;gt;vid, $file-&amp;gt;list, $file-&amp;gt;description, $file-&amp;gt;weight);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file_set_status($file, FILE_STATUS_PERMANENT);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; watchdog(&amp;#039;content&amp;#039;, &amp;#039;node created&amp;#039;, WATCHDOG_NOTICE, l(&amp;#039;view&amp;#039;, &amp;#039;node/&amp;#039;. $node-&amp;gt;nid));&lt;br /&gt;&amp;nbsp; return $node;&lt;br /&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Wed, 06 Aug 2008 20:52:18 +0000</pubDate>
 <dc:creator>attiks@drupal.org</dc:creator>
 <guid isPermaLink="false">13781 at http://groups.drupal.org</guid>
</item>
<item>
 <title>using flex to build a module for webcam / audio comments</title>
 <link>http://groups.drupal.org/node/13578</link>
 <description>&lt;p&gt;I am building a module to save webcam/audio comments using flex to design the interface and write to a Red5 server.&lt;/p&gt;
&lt;p&gt;I am deconstructing the Riffly module to write a module to have the flex interface appear with comments and write to the Drupal database.&lt;/p&gt;
&lt;p&gt;At the moment I have a Flex interface that uses the services module and the amfphp server to write a unique content type I&#039;ve created to Drupal through a Flex interface. It displays the postings that have been made through a view I created. This was based on the screencast for Flex and Drupal and also code I&#039;ve found around the net on Flex.&lt;/p&gt;
&lt;h2&gt;onBWDone&lt;/h2&gt;
&lt;p&gt;I am getting some problems capturing the webcam data and sending it to the Red5 server.&lt;/p&gt;
&lt;p&gt;Audio works fine, it&#039;s just the webcam stuff.&lt;/p&gt;
&lt;p&gt;Here is the snippet of code that&#039;s trying to save the webcam data.&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;private function netStatusHandler(event:NetStatusEvent):void {&lt;br /&gt;   trace(event.info.code);&lt;br /&gt;   switch (event.info.code)&lt;br /&gt;  {&lt;br /&gt;     case &amp;quot;NetConnection.Connect.Success&amp;quot;:&lt;br /&gt;       //Alert.show(&amp;quot;Connection to server a success&amp;quot;);&lt;br /&gt;     connectStatus = true;&lt;br /&gt;     if (connectStatus = true)&lt;br /&gt;     {&lt;br /&gt;     mic = Microphone.getMicrophone();&lt;br /&gt;     cam = Camera.getCamera();&lt;br /&gt;     //var vid:Video = new Video;&lt;br /&gt;      cam.setMode( 640, 480, 15 );&lt;br /&gt;      cam.setQuality( 0, 65 );&lt;br /&gt;      cam.setMotionLevel(0, 2000);&lt;br /&gt;      stopRecord.enabled = true;&lt;br /&gt;        makeRecord.enabled = false;&lt;br /&gt;           if (mic != null)&lt;br /&gt;          {&lt;br /&gt;             mic.setLoopBack(true);&lt;br /&gt;                //Security.showSettings(SecurityPanel.MICROPHONE);&lt;br /&gt;                mic.setUseEchoSuppression(true);&lt;br /&gt;              publishStream = new NetStream(connection);&lt;br /&gt;                publishStream.attachAudio(mic);&lt;br /&gt;               //publishStream.attachCamera(cam);&lt;br /&gt;                if (cam == null)&lt;br /&gt;              {&lt;br /&gt;                 Alert.show(&amp;quot;User has no camera installed&amp;quot;);&lt;br /&gt;             }&lt;br /&gt;             else if (cam != null)&lt;br /&gt;             {&lt;br /&gt;                 var vid:Video = new Video;&lt;br /&gt;                    vid.attachCamera(cam);&lt;br /&gt;                    addChild(vid);&lt;br /&gt;                    vid.attachNetStream(publishStream);&lt;br /&gt;               }&lt;br /&gt;             //publishStream.attachVideo(cam);&lt;br /&gt;             var storeNumber:Number = now.valueOf();&lt;br /&gt;               //timestamp = storeNumber.toString();&lt;br /&gt;             publishStream.publish(&amp;quot;message_&amp;quot; + yourName.text, &amp;quot;record&amp;quot;);&lt;br /&gt;              filename = &amp;quot;message_&amp;quot; + yourName.text + &amp;quot;.flv&amp;quot;;&lt;br /&gt;           }&lt;br /&gt;         else&lt;br /&gt;          Alert.show(&amp;quot;Microphone not attached or not functioning&amp;quot;);&lt;br /&gt;       }&lt;br /&gt;     break;&lt;br /&gt;        default:&lt;br /&gt;      Alert.show(&amp;quot;Media server connection error.&amp;quot;);&lt;br /&gt;       connectStatus = false;&lt;br /&gt;    }&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;private function stopRecording():void&lt;br /&gt;{&lt;br /&gt;  publishStream.close();&lt;br /&gt;    mic.setLoopBack(false);&lt;br /&gt;   makeRecord.enabled = true;&lt;br /&gt;    playRecord.enabled = true;&lt;br /&gt;    saveRecord.enabled = true;&lt;br /&gt;    deleteRecord.enabled = true;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;private function playBackRecording():void&lt;br /&gt;{&lt;br /&gt;   //Alert.show(&amp;quot;playBackRecording function called&amp;quot;);&lt;br /&gt;  var videoStream:NetStream = new NetStream(connection);&lt;br /&gt;    var video:Video = new Video();&lt;br /&gt;    video.attachNetStream(publishStream);&lt;br /&gt; videoStream.play(filename);&lt;br /&gt;   addChild(video);&lt;br /&gt;  //videoPlayer.enabled = true;   &lt;br /&gt;  //publishStream.play();&lt;br /&gt;   //videoPlayer.source = connection + filename;&lt;br /&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;The error I&#039;m getting is:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;Error #2044: Unhandled AsyncErrorEvent:. text=Error #2095: flash.net.NetConnection was unable to invoke callback onBWDone. error=ReferenceError: Error #1069: Property onBWDone not found on flash.net.NetConnection and there is no default value.&lt;br /&gt;  at main/connectToServer()[/Applications/MAMP/Flex Drupal Audio Recorder/main.as:111]&lt;br /&gt;  at main/__makeRecord_click()[/Applications/MAMP/Flex Drupal Audio Recorder/main.mxml:11]&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;I tried creating a function:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;public function onBWDone():void&lt;br /&gt;{&lt;br /&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;But this didn&#039;t seem to do anything.&lt;/p&gt;
&lt;p&gt;Anyone?&lt;/p&gt;
&lt;p&gt;Please help :(&lt;/p&gt;
&lt;p&gt;Sarah&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/13578#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/287">audio</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1523">Flex</category>
 <category domain="http://groups.drupal.org/taxonomy/term/5900">webcam</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Thu, 31 Jul 2008 01:37:34 +0000</pubDate>
 <dc:creator>scarer</dc:creator>
 <guid isPermaLink="false">13578 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Services from site to site</title>
 <link>http://groups.drupal.org/node/13515</link>
 <description>&lt;p&gt;Most of the discussion here is about Flex, AIR etc&#039;, but I wasn&#039;t able to fully crack how to use services on a simple site to site.&lt;/p&gt;
&lt;p&gt;Here&#039;s the task - how to node.save as a logged in user from one Drupal site to another?&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/13515#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1470">services</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Mon, 28 Jul 2008 21:05:31 +0000</pubDate>
 <dc:creator>amitaibu</dc:creator>
 <guid isPermaLink="false">13515 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Python Services API</title>
 <link>http://groups.drupal.org/node/13250</link>
 <description>&lt;p&gt;Just thought I&#039;d let everyone know I&#039;ve started the &lt;a href=&quot;http://drupal.org/project/python_services&quot;&gt;Python Services API project&lt;/a&gt;, which provides a set of classes and and tests that Python developers can use as a basis for integration with the Services module.  It&#039;s fairly bare-bones at the moment, and I&#039;m by no means and expert Python developer, so feedback and contributions are more than welcome.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/13250#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/189">api</category>
 <category domain="http://groups.drupal.org/taxonomy/term/5377">python</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1470">services</category>
 <category domain="http://groups.drupal.org/taxonomy/term/2148">web services</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Thu, 17 Jul 2008 16:14:10 +0000</pubDate>
 <dc:creator>jrbeeman</dc:creator>
 <guid isPermaLink="false">13250 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Node.save with flex </title>
 <link>http://groups.drupal.org/node/13138</link>
 <description>&lt;p&gt;Hey guys im being driven up the wall all of my services calls are working in flex except node.save everytime i try to use it i get a&lt;/p&gt;
&lt;p&gt;&quot;call_user_func_array(): First argument is expected to be a valid callback, &#039;node_form&#039; was given&quot;&lt;/p&gt;
&lt;p&gt;heres the flex fault code&amp;gt;.&lt;br /&gt;
.faultCode:AMFPHP_RUNTIME_ERROR faultString:&#039;call_user_func_array(): First argument is expected to be a valid callback, &#039;node_form&#039; was given&#039; faultDetail:&#039;I:\My Documents\webroot........\includes\form.inc on line 358&#039;&lt;/p&gt;
&lt;p&gt;the error occurs even after following the recipes screen cast&lt;/p&gt;
&lt;p&gt;if its helps im using drupal 6.2, amfphp 1.9beta and have tried both (services module 6.x-0.9 and 6.x-1.x with no success)&lt;/p&gt;
&lt;p&gt;every other call works fine within flex for the services module. if anyone could at least point me in the right direction for finding a solution it would be much appreciated&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/13138#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Mon, 14 Jul 2008 09:16:59 +0000</pubDate>
 <dc:creator>Reecex</dc:creator>
 <guid isPermaLink="false">13138 at http://groups.drupal.org</guid>
</item>
<item>
 <title>ChinaOpen: Part 2 - Drupal Open-Training</title>
 <link>http://groups.drupal.org/node/13123</link>
 <description>&lt;p&gt;Having launched ChinaOpen this saturday, we will be shifting from Adobe&#039;s Flex/AIR track into Drupal, from Tuesday July 15, 2008 on.&lt;/p&gt;
&lt;p&gt;This is an &quot;introduction to Drupal&quot; type of training, detail as follows:&lt;/p&gt;
&lt;p&gt;7月12日， ChinaOpen 第一站：adobe flex，详细请见 &lt;a href=&quot;http://drupalchina.org/node/4782&quot; title=&quot;http://drupalchina.org/node/4782&quot;&gt;http://drupalchina.org/node/4782&lt;/a&gt;&lt;br /&gt;
从7月15日起, ChinaOpen 第二站： Drupal公开课程 ，&lt;br /&gt;
具体课程安排如下：&lt;/p&gt;
&lt;p&gt;7月15 第一帧 Drupal 基础&lt;br /&gt;
将以drupal5.x版本讲述，暂定2008年7月15日上午9：30开始&lt;br /&gt;
主题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Drupal简介及基础概念&lt;/li&gt;
&lt;li&gt;安装drupal（drupal5.8）&lt;/li&gt;
&lt;li&gt;使用garland模板，在给定的garland主题和样式中，创建第一个drupal网站。&lt;br /&gt;
认识drupal的结构。&lt;/li&gt;
&lt;li&gt;认识drupal幕后：构建网页的几个重要文件&lt;br /&gt;
a) Template.php&lt;br /&gt;
b) Page.tpl.php&lt;br /&gt;
c) Node.tpl.php&lt;br /&gt;
d) Block.tpl.php&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;7月16 第二帧 用drupal制作一个有独立风格/样式/内容的网站&lt;br /&gt;
将以drupal5.x版本讲述，暂定2008年7月16日上午9：30开始&lt;br /&gt;
主题：&lt;br /&gt;
1. 从静态样式页面到动态主题页面的过程，从美工的DIV/CSS到如何植入Drupal&lt;br /&gt;
2. 通过几个重要的建站元素 （Region, content type ,view）搭建主题网站&lt;br /&gt;
3. 利用一些“内核”外的常用的模块，扩展网站的功能&lt;br /&gt;
a) View&lt;br /&gt;
b) cck&lt;br /&gt;
c) tinymce&lt;br /&gt;
d) image&lt;br /&gt;
e) upload&lt;br /&gt;
f) sitemap&lt;br /&gt;
。。。。。。。&lt;/p&gt;
&lt;p&gt;课程地点在：&lt;br /&gt;
北京市海淀区东北旺西路8号&lt;br /&gt;
中关村软件园孵化器&lt;br /&gt;
3号楼B座1314室&lt;br /&gt;
详情地址可以参见 &lt;a href=&quot;http://drupalchina.org/node/3638&quot; title=&quot;http://drupalchina.org/node/3638&quot;&gt;http://drupalchina.org/node/3638&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/washington-dc-drupalers&quot;&gt;Washington, DC Drupalers&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/13123#comments</comments>
 <group domain="http://groups.drupal.org/adobe-technologies">Adobe Technologies</group>
 <group domain="http://groups.drupal.org/bei-jing">Bei Jing (China)</group>
 <group domain="http://groups.drupal.org/curriculum">Curriculum and Training</group>
 <group domain="http://groups.drupal.org/multisite">Multisite</group>
 <group domain="http://groups.drupal.org/northern-va-users-group">Northern VA Users Group</group>
 <group domain="http://groups.drupal.org/services">Services</group>
 <group domain="http://groups.drupal.org/shanghai">Shanghai</group>
 <group domain="http://groups.drupal.org/washington-dc-drupalers">Washington, DC Drupalers</group>
 <pubDate>Sun, 13 Jul 2008 06:15:18 +0000</pubDate>
 <dc:creator>john.zhu</dc:creator>
 <guid isPermaLink="false">13123 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Automation from 3B2 CMS</title>
 <link>http://groups.drupal.org/node/13028</link>
 <description>&lt;p&gt;Hi Everyone,&lt;br /&gt;
We currently publish a printed weekly magazing with circulation of over 60K readers and now wish to start publishing to the web. I am pretty much decided on drupal as the platform of choice, and loved the NYobserver case study. However we have one major concern. Our journalists use the 3B2 Advent system. The requirement from the top is that this definetly has to remain in place so the option of journalists entering / publishing stories through a custom CCK content type in drupal is a no no. What we can do however is output all Journalist stories in perfect clean XML from 3B2 / Advent, but have noidea where to go from here. Can anyone advise on:&lt;br /&gt;
1) The best possible way we should be exporting this XML for Drupal and indeed,&lt;br /&gt;
2) If its possible to import this XML to drupal Nodes / Structure we should be using to make the most out of our XML files&lt;/p&gt;
&lt;p&gt;Kind Regards&lt;br /&gt;
amax&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/13028#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/98">3%</category>
 <category domain="http://groups.drupal.org/taxonomy/term/5690">advent</category>
 <category domain="http://groups.drupal.org/taxonomy/term/2780">development</category>
 <category domain="http://groups.drupal.org/taxonomy/term/2784">howto</category>
 <category domain="http://groups.drupal.org/taxonomy/term/2783">support</category>
 <group domain="http://groups.drupal.org/newspapers-on-drupal">Newspapers on Drupal</group>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Wed, 09 Jul 2008 09:10:19 +0000</pubDate>
 <dc:creator>amax</dc:creator>
 <guid isPermaLink="false">13028 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Using SOAP with Drupal</title>
 <link>http://groups.drupal.org/node/12896</link>
 <description>&lt;p&gt;Hiya.&lt;/p&gt;
&lt;p&gt;I am new to Drupal so please bare with my ignorance ;)&lt;br /&gt;
We are evaluating CMS&#039;s out there and usually in the enterprise world what makes or brakes you is the due diligence that has been done on integration APIs.&lt;/p&gt;
&lt;p&gt;We have looked at various other CMS&#039;s and it seems like Drupal is beginning to take being a &quot;content management service&quot; more serious than other alternatives who are happy to just be a website with open sourced code and &quot;integrate however you wish&quot; philosophy.&lt;/p&gt;
&lt;p&gt;I am really glad to see this initiative.&lt;/p&gt;
&lt;p&gt;I see a lot of AMFPHP etc but is there any documentation on how to integrate via SOAP? SOAP is &lt;em&gt;very&lt;/em&gt; popular among the industry for example Sales Force etc has an entire business on exposing APIs over SOAP.&lt;/p&gt;
&lt;p&gt;I would like to experiment connecting to Drupal APIs via SOAP in all our enterprise framework which consists of Java, .NET (ASP.NET, Winforms, Silverlight 2x, mobile devices etc).&lt;/p&gt;
&lt;p&gt;Any guidance on how to get started would be great. I have been unable to find where to reference the WSDL from.&lt;/p&gt;
&lt;p&gt;Thanks so much!&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12896#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Thu, 03 Jul 2008 16:45:08 +0000</pubDate>
 <dc:creator>kellabyte</dc:creator>
 <guid isPermaLink="false">12896 at http://groups.drupal.org</guid>
</item>
<item>
 <title>How to use Flash 9 (CS3) with Services and AMFPHP</title>
 <link>http://groups.drupal.org/node/12872</link>
 <description>&lt;p&gt;I&#039;ve seen a number of Flex/Drupal tutorials, but very few Flash/Drupal tutorials. There is one here:&lt;br /&gt;
&lt;a href=&quot;http://modern-carpentry.com/talk/?p=32&quot; title=&quot;http://modern-carpentry.com/talk/?p=32&quot;&gt;http://modern-carpentry.com/talk/?p=32&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But it misses out any of the newbie stages, i&#039;m just about getting around OOP and am pretty new to AS3, so i&#039;d love some .fla example files, or a real step by step tutorial. Does anyone know of a really simple tutorial to get me started.&lt;/p&gt;
&lt;p&gt;My goal is to initially make a simple flash website that can access drupal, but i&#039;m stumbling at the first hurdle - can anyone offer a pointer?&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12872#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/2581">amfphp flash services</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Wed, 02 Jul 2008 14:44:41 +0000</pubDate>
 <dc:creator>artfo</dc:creator>
 <guid isPermaLink="false">12872 at http://groups.drupal.org</guid>
</item>
<item>
 <title>call drupal function from external php file</title>
 <link>http://groups.drupal.org/node/12700</link>
 <description>&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;I&#039;v just heard about this module and understood it might help me...&lt;br /&gt;
I want to get values from external php script which will call drupal function that will take the data and call &quot;node_save&quot; with new node that contain the relevant data (which was arrived from the external php)&lt;/p&gt;
&lt;p&gt;I don&#039;t understand how services can solve it.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;
Miriam.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12700#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Wed, 25 Jun 2008 09:18:49 +0000</pubDate>
 <dc:creator>mirian@drupal.org</dc:creator>
 <guid isPermaLink="false">12700 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Services Newbie Question</title>
 <link>http://groups.drupal.org/node/12697</link>
 <description>&lt;p&gt;I&#039;ve been trying to build two modules that will talk to each when installed on separate sites. The functions appear to work in unit testing, but they do not talk to each other. I am not sure what I&#039;m doing wrong. I made up a hook_xmlrpc and a hook_service function to see if that was the difference, but no luck there.&lt;/p&gt;
&lt;p&gt;Function on calling site and the function that &quot;should&quot; be calling the remote site:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;// basically the cron job-- the tool that updates the links and spiders for new entries&lt;br /&gt;function plrhub_update_index($site_id = -1) {&lt;br /&gt;   if ($site_id == -1) {&lt;br /&gt;     $result = db_query_range(&amp;#039;SELECT site, site_id, api_key, last_index FROM {plrhub_site} WHERE status = 1 AND UNIX_TIMESTAMP() &amp;lt; (last_index + frequency + site_id)&amp;#039;, 0, 10);    &lt;br /&gt;  }&lt;br /&gt; else {&lt;br /&gt;        $result = db_query_range(&amp;#039;SELECT site, site_id, api_key, last_index FROM {plrhub_site} WHERE status = 1 AND site_id = &amp;#039;.intval($site_id), 0, 10);&lt;br /&gt;   }&lt;/p&gt;
&lt;p&gt;   while ($site = db_fetch_object($result)) {&lt;br /&gt;        $node_list = xmlrpc($site-&amp;gt;site.&amp;#039;/xmlrpc.php&amp;#039;,&amp;nbsp; &amp;#039;plrex.getNodeList&amp;#039;, -1, array(), array(), -1, -1, -1, $site-&amp;gt;last_index, $site-&amp;gt;api_key);&lt;/p&gt;
&lt;p&gt;        watchdog(&amp;#039;plrhub&amp;#039;,&amp;#039; going to &amp;#039;.$site-&amp;gt;site.&amp;#039;/xmlrpc.php for &amp;lt;pre&amp;gt;&amp;#039;.print_r($node_list, TRUE).&amp;#039;&amp;lt;/pre&amp;gt;&amp;#039;);&lt;/p&gt;
&lt;p&gt;      db_query(&amp;#039;UPDATE plrhub_site SET last_index = %d WHERE site_id = %d&amp;#039;, time(), $site-&amp;gt;site_id);&lt;br /&gt;       $plrhub_list = plrhub_update_list($node_list, $site-&amp;gt;site_id);&lt;br /&gt;     plrhub_update_search($plrhub_list);&lt;br /&gt;   }&lt;br /&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Function on remote site that would have to be called:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;function plrex_xmlrpc() {&lt;br /&gt;&amp;nbsp; return array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;plrex.getNodeList&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;plrex_service_node_list&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(&amp;#039;int&amp;#039;, &amp;#039;array&amp;#039;, &amp;#039;array&amp;#039;, &amp;#039;int&amp;#039;, &amp;#039;int&amp;#039;, &amp;#039;int&amp;#039;, &amp;#039;int&amp;#039;, &amp;#039;string&amp;#039;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t(&amp;#039;Returns a list of nodes that match your criteria.&amp;#039;))&lt;br /&gt;   );&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;function plrex_service() {&lt;br /&gt;&amp;nbsp; return array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // plrex.getNodeList&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#method&amp;#039;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;plrex.getNodeList&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#callback&amp;#039; =&amp;gt; &amp;#039;plrex_service_node_list&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#args&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#name&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;nid&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#type&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;int&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#description&amp;#039;&amp;nbsp; =&amp;gt; t(&amp;#039;A node id.&amp;#039;)),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#name&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;fields&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#type&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;array&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#optional&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; TRUE, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#description&amp;#039;&amp;nbsp; =&amp;gt; t(&amp;#039;A list of fields to return.&amp;#039;)),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#name&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;tids&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#type&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;array&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#optional&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; TRUE, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#description&amp;#039;&amp;nbsp; =&amp;gt; t(&amp;#039;The terms that match the taxonomy of a list&amp;#039;)),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#name&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;plrx.ratings&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#type&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;int&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#optional&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; TRUE, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#description&amp;#039;&amp;nbsp; =&amp;gt; t(&amp;#039;Minimum ratings&amp;#039;)),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#name&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;plrx.downloads&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#type&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;int&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#optional&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; TRUE, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#description&amp;#039;&amp;nbsp; =&amp;gt; t(&amp;#039;The maximum number of downloads&amp;#039;)),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#name&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;plrx.cost&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#type&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;int&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#optional&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; TRUE, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#description&amp;#039;&amp;nbsp; =&amp;gt; t(&amp;#039;Maximum cost&amp;#039;)),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#name&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;changed&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#type&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;int&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#optional&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; TRUE, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#description&amp;#039;&amp;nbsp; =&amp;gt; t(&amp;#039;Changed date&amp;#039;)),&lt;br /&gt;      array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#name&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;api_key&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#type&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;string&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#description&amp;#039;&amp;nbsp; =&amp;gt; t(&amp;#039;The API Key&amp;#039;))),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#return&amp;#039;&amp;nbsp;&amp;nbsp; =&amp;gt; &amp;#039;struct&amp;#039;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#039;#help&amp;#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; t(&amp;#039;Returns a list of nodes that match your criteria.&amp;#039;)),&lt;br /&gt;&amp;nbsp; );&lt;br /&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;I have a watchdog log on the remote site and there is no sign of the local site calling the remote site. When I called the &quot;plrex_service_node_list&quot; function in a test on the remote site (from a test page calling the function), that function worked fine in isolation. I am not getting back any errors of any sort-- just the absence of output from the remote site and it looks like it&#039;s not called in the first place.&lt;/p&gt;
&lt;p&gt;Any ideas? Any pointers? Any where I can dig for more info on what I&#039;m missing?&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12697#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1470">services</category>
 <category domain="http://groups.drupal.org/taxonomy/term/544">xmlrpc</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Wed, 25 Jun 2008 04:40:31 +0000</pubDate>
 <dc:creator>dewolfe001</dc:creator>
 <guid isPermaLink="false">12697 at http://groups.drupal.org</guid>
</item>
<item>
 <title>drupal 5, as2 node.save how to set uid and url alias</title>
 <link>http://groups.drupal.org/node/12597</link>
 <description>&lt;p&gt;Hi Everybody!&lt;br /&gt;
I&#039;m new to drupal. I would like to make a website with a flash based interview appz. After user click send button I&#039;d like to store the interview text as a node. I used the example &quot;Accessing a service from Flash 8&quot;. It works fine.&lt;br /&gt;
I have made some changes in the flash code, because I don&#039;t want to load the node to the flash but I want to save the flash content to database as node:&lt;br /&gt;
var content = new Object();&lt;br /&gt;
content.type = &quot;interview&quot;;&lt;br /&gt;
content.title = &quot;some title&quot;;&lt;br /&gt;
content.body = &quot;some body text&quot;;&lt;br /&gt;
var pc:PendingCall = node.save(content);&lt;br /&gt;
It works fine, but only when I&#039;m logged in as administrator.&lt;/p&gt;
&lt;p&gt;And I need two more things to set:&lt;/p&gt;
&lt;p&gt;I need to set the user id (uid)&lt;br /&gt;
I tried with adding one more line:&lt;br /&gt;
content.uid = &quot;2&quot;; but it doesn&#039;t work.&lt;br /&gt;
every node that saved from flash has uid=0&lt;/p&gt;
&lt;p&gt;the second thing to set is the url alias. I&#039;d like to ganarate a url alias from the user submitted name, and after submitting I&#039;d like to redirect to user to the host/interview/usernamepath page, which contains the interview text.&lt;/p&gt;
&lt;p&gt;thanks for help&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12597#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/5482">flash as2</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Fri, 20 Jun 2008 08:35:15 +0000</pubDate>
 <dc:creator>mhncsa</dc:creator>
 <guid isPermaLink="false">12597 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Services Security Update -- Please Update your Version of Services.module</title>
 <link>http://groups.drupal.org/node/12573</link>
 <description>&lt;p&gt;For those who don&#039;t get the Security email announcements:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;------------SA-2008-038 - SERVICES - ARBITRARY CODE EXECUTION------------

 * Advisory ID: DRUPAL-SA-2008-038

 * Project: Services (third-party module)

 * Versions: 5.x and 6.x

 * Date: 2008-June-18

 * Security risk: Highly critical

 * Exploitable from: Remote

 * Vulnerability: Arbitrary code execution

------------DESCRIPTION------------

The Services module package was created out of a need for a standardized
solution to integrate external applications with Drupal. It builds on concepts
from Drupal core&#039;s XMLRPC interface, but abstracts service callbacks so that
they may be used with multiple interfaces such as XMLRPC, SOAP, REST, and AMF.
This enables a Drupal site to provide web services via multiple interfaces while
using the same callback code.

Unfortunately, the access control system is not sufficiently granular; Users
with access to use a services have access to all provided services. With the
provided node services, or the system services enabled, it allowed arbitrary
code execution for those users.

Access to services can optionally be limited to certain ip addresses or
configured to need an API key, somewhat mitigating the issue.

------------VERSIONS AFFECTED------------

 * Versions of Services for Drupal 5.x prior to 5.x-0.9

 * Versions of Services for Drupal 6.x prior to 6.x-0.9

If you do not use the Services module, there is nothing you need to do.

------------SOLUTION------------

Install the latest version:

 * If you use Services for Drupal 5.x upgrade to Services 5.x-0.9 [
&lt;a href=&quot;http://drupal.org/node/272203&quot; title=&quot;http://drupal.org/node/272203&quot;&gt;http://drupal.org/node/272203&lt;/a&gt; ]

 * If you use Services for Drupal 6.x upgrade to Services 6.x-0.9 [
&lt;a href=&quot;http://drupal.org/node/272202&quot; title=&quot;http://drupal.org/node/272202&quot;&gt;http://drupal.org/node/272202&lt;/a&gt; ]

Review the new security features within the module, and upgrade all of your
remote service calls to authenticate a user session ID before making any Service
calls requiring secure communication.

See also the Services project page [ &lt;a href=&quot;http://drupal.org/project/services&quot; title=&quot;http://drupal.org/project/services&quot;&gt;http://drupal.org/project/services&lt;/a&gt; ].

------------REPORTED BY------------

Scott Nelson [ &lt;a href=&quot;http://drupal.org/user/31156&quot; title=&quot;http://drupal.org/user/31156&quot;&gt;http://drupal.org/user/31156&lt;/a&gt; ], Gerhard Killesreiter [
&lt;a href=&quot;http://drupal.org/user/227&quot; title=&quot;http://drupal.org/user/227&quot;&gt;http://drupal.org/user/227&lt;/a&gt; ], Heine Deelstra [ &lt;a href=&quot;http://drupal.org/user/17943&quot; title=&quot;http://drupal.org/user/17943&quot;&gt;http://drupal.org/user/17943&lt;/a&gt; ].

------------CONTACT------------

The security contact for Drupal can be reached at security at drupal.org or via
the form at [ &lt;a href=&quot;http://drupal.org/contact&quot; title=&quot;http://drupal.org/contact&quot;&gt;http://drupal.org/contact&lt;/a&gt; ].
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12573#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/497">security</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1470">services</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Thu, 19 Jun 2008 14:16:18 +0000</pubDate>
 <dc:creator>bmcmurray@drupal.org</dc:creator>
 <guid isPermaLink="false">12573 at http://groups.drupal.org</guid>
</item>
<item>
 <title>How to pass API key to xmlrpc server for node.load function from client for pulling data from the server ?</title>
 <link>http://groups.drupal.org/node/12568</link>
 <description>&lt;p&gt;I am trying to pull node from the remote site that contains service module(xmlrpc server), if i dont use the API key then i can extract the node using the following code from client drupal installation.&lt;/p&gt;
&lt;p&gt;$node = xmlrpc(&#039;http://remotesitename/services/xmlrpc&#039;,  &#039;node.load&#039;, 12, array());&lt;/p&gt;
&lt;p&gt;But if i want to use the API key then how can i extract/pull node from the remote site so that only valid users can avail the service of service module.&lt;/p&gt;
&lt;p&gt;Thanks in advance.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12568#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Thu, 19 Jun 2008 13:04:52 +0000</pubDate>
 <dc:creator>baruah</dc:creator>
 <guid isPermaLink="false">12568 at http://groups.drupal.org</guid>
</item>
<item>
 <title>User Servce: Registration call missing?</title>
 <link>http://groups.drupal.org/node/12508</link>
 <description>&lt;p&gt;We&#039;re happily building a flex site with Drupal as our content and membership provider.  Everything works great, except today when I&#039;m getting ready to put the registration side of things on the Flex application - I cannot find a way to call into Druapl to register a user.&lt;/p&gt;
&lt;p&gt;The login/logout service calls work perfectly - as does the connect call from the system service - but I am at a loss as to what call to make to register a new user.&lt;/p&gt;
&lt;p&gt;Any direction greatly appreciated.&lt;/p&gt;
&lt;p&gt;M@&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12508#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Tue, 17 Jun 2008 14:25:27 +0000</pubDate>
 <dc:creator>MattVBO</dc:creator>
 <guid isPermaLink="false">12508 at http://groups.drupal.org</guid>
</item>
<item>
 <title>AS3 - AMFPHP connection problems</title>
 <link>http://groups.drupal.org/node/12470</link>
 <description>&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;I have been playing around with AS3 and AMFPHP using FlashDevelop IDE and slowly learning. I have pieced the following code together and finally having overcome all the syntax errors and getting the types properly defined It doesn&#039;t throw any compiling error however it won&#039;t connect.&lt;/p&gt;
&lt;p&gt;I get the following error&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;Error #2044: Unhandled NetStatusEvent:. level=error, code=NetConnection.Call.Failed at drupal2()&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;If someone could point out my probably obvious mistake I would be very appreciative.&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;package {&lt;/p&gt;
&lt;p&gt;  import flash.display.Sprite;    &lt;br /&gt;  import flash.net.NetConnection;&lt;br /&gt;   import flash.net.Responder;&lt;br /&gt;   import flash.text.TextField;&lt;br /&gt;  import flash.text.TextFieldType;&lt;/p&gt;
&lt;p&gt;    import flash.events.Event;&lt;/p&gt;
&lt;p&gt;  public class drupal2 extends Sprite {&lt;/p&gt;
&lt;p&gt;      // create, position, and set params on three dynamic text fields: status, node-title, and node-body&lt;/p&gt;
&lt;p&gt;      private var tf:TextField = createTextField( 10, 0,&amp;nbsp; 200, 200);&lt;br /&gt;       private var ntitle:TextField = createTextField( 11, 50, 200, 200);&lt;br /&gt;        private var nbody:TextField = createTextField( 12, 100, 200, 400);&lt;br /&gt;        private var myService:NetConnection;&lt;br /&gt;      private var responder:Responder;&lt;/p&gt;
&lt;p&gt;      public function drupal2() : void{&lt;/p&gt;
&lt;p&gt;          responder = new Responder(getData_Result, getData_Fault);&lt;br /&gt;         myService = new NetConnection();&lt;br /&gt;          myService.connect(&amp;quot;http://my.domain.com/services/amfphp&amp;quot;);&lt;/p&gt;
&lt;p&gt;          myService.call(&amp;quot;node.load&amp;quot;, responder , &amp;quot;1&amp;quot;);       &lt;/p&gt;
&lt;p&gt;            // set default status text&lt;br /&gt;            tf.text = &amp;quot;no response from server yet.&amp;quot;;             &lt;br /&gt;          &amp;nbsp;&amp;nbsp; &lt;br /&gt;     }&lt;/p&gt;
&lt;p&gt;      // success result handler&lt;br /&gt;     public function getData_Result( re:Object ):void {&lt;br /&gt;            tf.text = &amp;quot;response:&amp;quot;;&lt;br /&gt;          ntitle.htmlText = &amp;quot;&amp;lt;b&amp;gt;Node Title:&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;quot; + re.result.title;&lt;br /&gt;            nbody.htmlText = &amp;quot;&amp;lt;b&amp;gt;Node Body:&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;quot; + re.result.body;&lt;br /&gt;       }&lt;/p&gt;
&lt;p&gt;       // failure result handler&lt;br /&gt;     public function getData_Fault( fault:Object ):void {&lt;br /&gt;          tf.text = &amp;quot;error&amp;quot;;&lt;br /&gt;      }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Creating Textfield - not sure whether I need this&lt;br /&gt;      private function createTextField(x:Number, y:Number, width:Number, height:Number):TextField {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var result:TextField = new TextField();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result.x = x; result.y = y;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result.width = width; result.height = height;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; addChild(result);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;  }   &lt;br /&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;I don&#039;t mind you laughing but please...no shaking of the head.&lt;/p&gt;
&lt;p&gt;many thanks&lt;br /&gt;
Geoff&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12470#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1522">AMFPHP</category>
 <category domain="http://groups.drupal.org/taxonomy/term/3573">AS3</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Mon, 16 Jun 2008 12:57:16 +0000</pubDate>
 <dc:creator>gpdinoz@drupal.org</dc:creator>
 <guid isPermaLink="false">12470 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Creating Images in Flash&gt;Saving to Server&gt;Creating Nodes</title>
 <link>http://groups.drupal.org/node/12446</link>
 <description>&lt;p&gt;Hey everyone, I thought I&#039;d post about a project I&#039;m working on. My goal was to have a user create images in Flash, and ultimately have Drupal save the image on the webserver along with node data for retrieval later.&lt;/p&gt;
&lt;p&gt;It works!&lt;/p&gt;
&lt;p&gt;I&#039;m new to using Services and AMFPHP, and to some extent Actionscript 3, but with the screencasts Rob Loach provided (HUGE thanks!!) I was able to start wrapping my head around this stuff. Even though the tutorials are done in Flex, with some fiddling I got it to work in Flash CS3.&lt;/p&gt;
&lt;p&gt;I posted this on Drupal.org initially but I imagine it makes more sense to post here:&lt;/p&gt;
&lt;p&gt;To accomplish this I needed an add-on class for Actionscript called JPEGExporter.as, part of a package called as3corelib which you can download &lt;a href=&quot;http://code.google.com/p/as3corelib/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install Drupal with Services, AMFPHP, and CCK&lt;/li&gt;
&lt;li&gt;Create a new Actionscript 3 Flash Document&lt;/li&gt;
&lt;li&gt;Grab the above mentioned as3corelib&lt;/li&gt;
&lt;li&gt;In your AS3 application, you can get your image into a BitmapData object, which you can run through the JPEGEncoder class, and then stuff that into the new AS3 ByteArray Class.&lt;/li&gt;
&lt;li&gt;AMFPHP supports ByteArrays, so you can send your ByteArray object off to a service you create in Drupal&lt;/li&gt;
&lt;li&gt;The service captures the ByteArray, and can then write the jpg to the files folder, and give it a unique filename&lt;/li&gt;
&lt;li&gt;The callback function which creates the JPEG can then return the value of the filename back to Flash again via AMFPHP&lt;/li&gt;
&lt;li&gt;In your Flash application you can now give it the url to your files folder, plus a variable that contains the unique filename, and from here you can use another service to write all of the data into a new node&lt;/li&gt;
&lt;li&gt;Of course you&#039;ll need a CCK textfield with the path to the image to do anything useful with the image, or you could get fancy and write it as an imagefield I suppose and use imagecache to further process your image&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I know it&#039;s a brief summary but if you are familiar with services and AMFPHP this hopefully should make sense. I can&#039;t believe I was able to get this to work, and it works FAST too. The encoding is done in the swf too which might take a load off the server should the site get hit hard with traffic.&lt;/p&gt;
&lt;p&gt;I&#039;ll try to post more info if anyone is interested.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12446#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/5446">actionscript 3</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1522">AMFPHP</category>
 <category domain="http://groups.drupal.org/taxonomy/term/422">flash</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Sat, 14 Jun 2008 16:12:58 +0000</pubDate>
 <dc:creator>elliotttt</dc:creator>
 <guid isPermaLink="false">12446 at http://groups.drupal.org</guid>
</item>
<item>
 <title>amfphp - using the api key in Flash 8</title>
 <link>http://groups.drupal.org/node/12404</link>
 <description>&lt;p&gt;ello, i&#039;m new to this group and to the service / amfphp modules. after following the flash 8 section in the services hand handbook [http://drupal.org/node/140893 ] i&#039;ve got my flash site to connected to drupal, so a well happy. but i&#039;m struggling to find out how to implement the api and session keys in as2; the as3 stuff seem really cool, but my site need run in as2. Could anyone point me in the right direction of any as2 classes or help with some basic syntax, where do i add the api and session keys?&lt;br /&gt;
var node:Service = new Service(&quot;http://sitedomain/services/amfphp&quot;, new Log(), &quot;node&quot;, null, null);&lt;br /&gt;
cheers, Tim.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12404#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1522">AMFPHP</category>
 <category domain="http://groups.drupal.org/taxonomy/term/5435">as2</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Thu, 12 Jun 2008 13:40:23 +0000</pubDate>
 <dc:creator>timosea</dc:creator>
 <guid isPermaLink="false">12404 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Reverse engineer a Flash/AMFPHP view</title>
 <link>http://groups.drupal.org/node/12331</link>
 <description>&lt;p&gt;I hope this is the appropriate place for this question. I have searched around but cannot find an answer. Hopefully someone here can help:&lt;/p&gt;
&lt;p&gt;I am building a Flash/AMFPHP/Drupal site. I populate the Flash from Views.&lt;br /&gt;
I &lt;em&gt;had&lt;/em&gt; a working view into Flash but somehow screwed it up (don&#039;t ask!)...&lt;/p&gt;
&lt;p&gt;Background info:&lt;br /&gt;
I have created a Custom Content Type called &quot;music&quot; using the CCK audio_field.&lt;br /&gt;
I have a view that collects all nodes of this type.&lt;/p&gt;
&lt;p&gt;In Flash I push the &quot;Titles&quot; and the &quot;Bodies&quot; into two arrays using this:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;       private function getMP3s(result:Object):void&lt;br /&gt;      {&lt;br /&gt;         for (var i = 0; i &amp;lt; result.length; i++) &lt;br /&gt;           {&lt;br /&gt;             MP3Titles.push(result[i].title);&lt;br /&gt;              MP3Urls.push(&amp;quot;http://www.mySite.com/&amp;quot;+result[i].field_audio[0].filepath);&lt;br /&gt;           }&lt;br /&gt;         createMenu();&lt;br /&gt;         playMP3(0);&lt;br /&gt;           trace(&amp;quot;MP3Titles are &amp;quot;+MP3Titles);&lt;br /&gt;          trace(&amp;quot;MP3Bodies are &amp;quot;+MP3Urls);&lt;br /&gt;        };&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;And here is the breakdown of my view:&lt;br /&gt;
name: audio&lt;br /&gt;
access: anonymous, authenticated&lt;br /&gt;
description: audio view for Flash&lt;br /&gt;
page view URL: audio&lt;br /&gt;
view type: full nodes&lt;br /&gt;
fields: file:Path (label: Body)&lt;br /&gt;
Filters: Node: Type, Audio&lt;/p&gt;
&lt;p&gt;My question is about rebuilding the view.&lt;br /&gt;
I have been unable to rebuild the view to successfully pull in these arrays. I have the &quot;Titles&quot; array but the &quot;Bodies&quot; are null.&lt;/p&gt;
&lt;p&gt;Can someone give me a pointer on building my view so my &quot;Titles&quot; array will work? I could also open the Drupal up to someone if it would help diagnose the problem.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12331#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/5399">AMFPHP services</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Tue, 10 Jun 2008 04:12:55 +0000</pubDate>
 <dc:creator>wishbone</dc:creator>
 <guid isPermaLink="false">12331 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Nodepoints and Userpoints...</title>
 <link>http://groups.drupal.org/node/12109</link>
 <description>&lt;p&gt;I&#039;ve created a new module...am still waiting for Drupal.org to accept it...&lt;/p&gt;
&lt;p&gt;Nodepoint is the same with userpoint module, but this module allows nodes to have points...&lt;/p&gt;
&lt;p&gt;The pratical use of this is when a user gets a service on a certain node his userpoint will be deducted based on the nodepoints of the node...&lt;/p&gt;
&lt;p&gt;let me know your toughts pinoys... Im working on new customized modules for BMF (Cebu-based)...&lt;br /&gt;
Next i will create its nodepoint services (XMLRPC or JSON servers). Any body got an idea on this?&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12109#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/5386">nodepoints userpoints xmlrpc services</category>
 <group domain="http://groups.drupal.org/philippines">Philippines</group>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Mon, 09 Jun 2008 05:37:16 +0000</pubDate>
 <dc:creator>heinzmilitar</dc:creator>
 <guid isPermaLink="false">12109 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Flex and Services security</title>
 <link>http://groups.drupal.org/node/11525</link>
 <description>&lt;p&gt;I&#039;m using Flex to build cross-domain widgets that can be embedded on any domain.  These widgets consume data via Services and AMFPHP.  Unfortunately, I&#039;ve been notified that my site is now vulnerable to attacks because I have a liberal crossdomain.xml policy file that allows connections from any domain.&lt;/p&gt;
&lt;p&gt;I&#039;ve done some research on possible solutions.  These solutions include hosting the crossdomain.xml policy file on something like api.mysite.com, or moving the crossdomain.xml file into an arbitrary directory and calling it explicitly in the Flex application.  This option reduces the attack vector, but doesn&#039;t solve the problem.&lt;/p&gt;
&lt;p&gt;Has anyone set up a subdomain for their policy file, or perhaps mitigated the risk in another way?&lt;/p&gt;
&lt;p&gt;References:&lt;br /&gt;
&lt;a href=&quot;http://blog.monstuff.com/archives/000302.html&quot; title=&quot;http://blog.monstuff.com/archives/000302.html&quot;&gt;http://blog.monstuff.com/archives/000302.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&quot; title=&quot;http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&quot;&gt;http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdom...&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://shiflett.org/blog/2006/sep/the-dangers-of-cross-domain-ajax-with-flash&quot; title=&quot;http://shiflett.org/blog/2006/sep/the-dangers-of-cross-domain-ajax-with-flash&quot;&gt;http://shiflett.org/blog/2006/sep/the-dangers-of-cross-domain-ajax-with-...&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/11525#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/5177">crossdomain</category>
 <category domain="http://groups.drupal.org/taxonomy/term/422">flash</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1523">Flex</category>
 <category domain="http://groups.drupal.org/taxonomy/term/497">security</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1470">services</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Fri, 16 May 2008 13:42:44 +0000</pubDate>
 <dc:creator>ebeyrent</dc:creator>
 <guid isPermaLink="false">11525 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Does an RSS Aggregator Service exist?</title>
 <link>http://groups.drupal.org/node/11255</link>
 <description>&lt;p&gt;I&#039;m very happy with the way the Drupal Aggregator Module allows a user to build a collection of news feeds.&lt;/p&gt;
&lt;p&gt;We would like to display the same information it outputs via a flex application, and I&#039;m having a hard time deciding the best way to do this.  We&#039;re serving up other content from Drupal to Flex via the services module.  There doesn&#039;t appear to be a direct service for the data the aggregator displays.&lt;/p&gt;
&lt;p&gt;I did find in beta5 of the Services module the ability to create a RSS view - but this appears to be only a single feed, unless I&#039;m missing something.&lt;/p&gt;
&lt;p&gt;I believe the answer is we need to create a Aggregator Service, which isn&#039;t beyond me - but I don&#039;t want to duplicate effort or run down this path if there&#039;s already a better solution to accomplish what we want.&lt;/p&gt;
&lt;p&gt;Apologies in advance from a Noopal (Drupal Noob?)&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/11255#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/5057">rss services aggregator</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Tue, 06 May 2008 16:58:43 +0000</pubDate>
 <dc:creator>MattVBO</dc:creator>
 <guid isPermaLink="false">11255 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Retrieving Drupal user session from Flex3</title>
 <link>http://groups.drupal.org/node/11181</link>
 <description>&lt;p&gt;I&#039;ve been having an issue for a week now.&lt;/p&gt;
&lt;p&gt;I have a tiny Flex 3 app which simply retrieves the current drupal user session and displays the user data.&lt;br /&gt;
I&#039;m using D6, services, amfphp with sessid turned off.&lt;/p&gt;
&lt;p&gt;When I run the app on my laptop, the system.connect() method returns the proper Drupal user/session. If I switch user in Drupal and refresh the app I get updated and accurate user data displayed. My Sessions table only shows one Drupal session and my Flex app uses that session correctly. Seems smooth enough.&lt;/p&gt;
&lt;p&gt;My problem is when other users access the app. Two scenarios here:&lt;br /&gt;
Use sessid enabled:&lt;br /&gt;
When system.connect() is called an anonymous sessions is created in the Sessions table regardless if there is an active Drupal logged in session in the DB. It&#039;s as if the global $user or session_id() calls can&#039;t find the right Drupal session. Thus the insertion of an anonymous session.&lt;/p&gt;
&lt;p&gt;Use sessid disabled:&lt;br /&gt;
A new cookie based session is created and the app retrieves only that cookie session. Which in turn is also anonymous.&lt;/p&gt;
&lt;p&gt;In any case, other users (non-me from my laptop) never get their correct Drupal session.&lt;/p&gt;
&lt;p&gt;I do not want to use a new session for the app but rather use the existing (logged in, or not) Drupal session.&lt;/p&gt;
&lt;p&gt;Am I missing something here?&lt;/p&gt;
&lt;p&gt;Thanks for any help !&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/11181#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Sat, 03 May 2008 12:18:19 +0000</pubDate>
 <dc:creator>redluk</dc:creator>
 <guid isPermaLink="false">11181 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Blocks and service calls</title>
 <link>http://groups.drupal.org/node/11035</link>
 <description>&lt;p&gt;It seems that node specific data (nid, title) isn&#039;t getting passed into a block I have that contains a SWF looking to call a &quot;views.getView&quot; service. The view contains an argument that looks for a node ID and shows only that nodes info.&lt;br /&gt;
I&#039;ve got a custom page layout in Panels2. One of the panels holds this service calling SWF. It seems that the block or SWF itself isn&#039;t registering an nid, where as other views and pieces of content in the same panel do?&lt;br /&gt;
Is there a snippet or workaround to pass the data needed into blocks for the service call to use?&lt;/p&gt;
&lt;p&gt;The type of argument handling I&#039;m using in the view at the moment is:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;global $node;&lt;br /&gt;// Make the first argument the current node if not already set&lt;br /&gt;if (!$args[0]) {&lt;br /&gt;&amp;nbsp; $args[0] = $node-&amp;gt;nid;&lt;br /&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;My &quot;views.getView&quot; service in the services browser works when I pass it a node ID&lt;/li&gt;
&lt;li&gt;My SWF calls a view like &quot;frontpage&quot; and displays data (but this doesn&#039;t rely on the current nodes ID to work)&lt;/li&gt;
&lt;li&gt;Other content in the panel (which isn&#039;t a block) is picking up the the nid for it&#039;s arguments.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/11035#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Sun, 27 Apr 2008 16:50:51 +0000</pubDate>
 <dc:creator>BeechyBoy</dc:creator>
 <guid isPermaLink="false">11035 at http://groups.drupal.org</guid>
</item>
<item>
 <title>OAuth Integation with ServicesAPI</title>
 <link>http://groups.drupal.org/node/10910</link>
 <description>&lt;p&gt;&lt;strong&gt;WAS Off for meetup at Google&#039;s office. Back in first week of august. - NOW BACK AT WORK &lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Project information&lt;/h3&gt;
&lt;p&gt;
In today&#039;s web, people do not like to share or exchange all their stuff on one service.  Today, we prefer to use Flickr for photos, YouTube for videos, Amazon for shopping, etc. In order to make integration of different web services (in order to satisfy all customer/user needs), APIs using Services API in a secure fashion are used.  To provide a secure way of this type of communication, OAuth open protocol is a very good option. The current system of API keys used by Services API is a combination of user name and password, but this key is too unsafe to share around on web. Also this key cannot be unshared once it is shared or handed over to other web service. The token provided by OAuth system will provide a much safer and risk free browsing experience to users.&lt;br /&gt;
Integration of OAuth 1.0 core to Drupal&#039;s Service API will provide users/administrators a pluggable authentication system such that they can choose between the current system of API keys, or OAuth token system to access desired web services. The method OAuth uses is to provide “tokens” to users instead of keys. Now for each kind of web service, OAuth issues a different kind of token to user. Also, these tokens are time bound an amount of access time to another service and then it expires automatically (could be a two hour access time).&lt;/p&gt;
&lt;p&gt;
Does this mean that OAuth is like OpenID?&lt;br /&gt;
The OAuth approach might be considered better than the OpenID approach as users don&#039;t have to do anything to undertstand it. They just browse normally with their existing methods but in a secure manner.
&lt;/p&gt;
&lt;p&gt;
OAuth integration with Service API will rescue users, and developers, who put themselves at risk by sharing their private information.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Important about this project&lt;/strong&gt;&lt;br /&gt;
After discussing it with my mentors and looking at situations have decided to do this project as by not making an additional &quot;oauth_services&quot; module. We will be implementing OAuth&#039;s functionality to Drupal and Services by adding additional things to existing modules. So I will be commiting my code to &quot;oauth&quot; and &quot;services&quot; module not to an another new module.&lt;br /&gt;
This is in favor of all as we always want to install less no of modules while working :P .&lt;br /&gt;
Test Server is already running latest code which is in good condition to make tests with :) :&lt;br /&gt;
&lt;a href=&quot;http://tut2tech.com/sb2/?q=admin/build/oauth&quot; title=&quot;http://tut2tech.com/sb2/?q=admin/build/oauth&quot;&gt;http://tut2tech.com/sb2/?q=admin/build/oauth&lt;/a&gt;&lt;br /&gt;
go on send me feedback&lt;br /&gt;
Discussion Link : &lt;a href=&quot;http://groups.drupal.org/node/10268&quot; title=&quot;http://groups.drupal.org/node/10268&quot;&gt;http://groups.drupal.org/node/10268&lt;/a&gt;&lt;br /&gt;
Services Issues link : &lt;a href=&quot;http://drupal.org/node/238814&quot; title=&quot;http://drupal.org/node/238814&quot;&gt;http://drupal.org/node/238814&lt;/a&gt;&lt;br /&gt;
oauth_services issue link : &lt;a href=&quot;http://drupal.org/node/275107&quot; title=&quot;http://drupal.org/node/275107&quot;&gt;http://drupal.org/node/275107&lt;/a&gt;&lt;br /&gt;
Current status: Base work going on. Understanding Drupal core better and finding some algorithmic way to integrate OAuth to services module
&lt;/p&gt;
&lt;h3&gt;Description&lt;/h3&gt;
&lt;p&gt;By means of this project I would like to contribute a module to the Drupal community which will provide existing Service API a pluggable authentication module such that users will be able to choose between existing API keys method or OAuth method to access other web services. Drupal&#039;s existing Services API implementation is pretty weak so integrating it with open protocol OAuth will enhance security features to it.&lt;/p&gt;
&lt;h3&gt;Status updates&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;20th May 2008 : Earlier preparations  for project started .. &lt;/li&gt;
&lt;li&gt;&lt;a id=&quot;2008-05-27&quot;&gt;&lt;/a&gt;27th May 2008 -&lt;strong&gt; week 1&lt;/strong&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Testing already existing(in development) OAuth module and looking at its implementation to Services via a hook system( hook still to produce by Adrain )&lt;/li&gt;
&lt;li&gt;Try implementing Server side testing with Drupal and OAuth&lt;/li&gt;
&lt;li&gt;Designing  a UI for upcoming OAuth_services module its so-far decided contents will be
&lt;ul&gt;
&lt;li&gt;OAuth &lt;/li&gt;
&lt;li&gt;Keys for Drupal site&lt;/li&gt;
&lt;li&gt;Consumers user can access &lt;/li&gt;
&lt;li&gt;Shared keys with other sites&lt;/li&gt;
&lt;li&gt;A testing Browser for making requests&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Discussing more about its implementation in Services &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/br&gt;&lt;br /&gt;
Week with bad health - Now I am pushing it harder &lt;/br&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong id=&quot;2008-06-03&quot;&gt;WEEK - 2&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Working on a hook to implement OAuth&#039;s authentication system to Services&lt;/li&gt;
&lt;li&gt;coding UI for oauth_services&lt;/li&gt;
&lt;li&gt;modifying code in Services to work with new authentication system and end points&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;WEEK - 3&lt;/strong&gt;
&lt;ul&gt;What I did this week : 
&lt;li&gt;Fixed some code from OAuth module
&lt;ul&gt;
&lt;li&gt;Earlier it was producing key and secret for just one user and then it was overwriting it&lt;/li&gt;
&lt;li&gt;Still to fix in it : &lt;br /&gt; 1. Nonce entry to table with proper timestamp&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Made some changes to Services library to use OAuth for authorization &lt;/li&gt;
&lt;li&gt;Writing a module &quot;oauth_call&quot;  so that test calls for request token and access token can be made from here only......... still in progress(not completed) &lt;/li&gt;
&lt;li&gt;Writing test code for requests (or test purpose only) - will be out soon&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;second-last week&#039;s updates&lt;/strong&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Returned from Google&#039;s office trip from Banglore&lt;/li&gt;
&lt;li&gt;Project reaching to final touches&lt;/li&gt;
&lt;li&gt;Fixed 2 broken tables &lt;/li&gt;
&lt;p&gt;&lt;strong&gt;work to do this week&lt;/strong&gt;
&lt;li&gt;adding help to module to make it easy to use&lt;/li&gt;
&lt;li&gt;writing API documentation&lt;/li&gt;
&lt;li&gt;Take final feedback from mentors and community to make a final release&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-2008&quot;&gt;SoC 2008&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/10910#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/5123">SoC2008ProjectWiki</category>
 <group domain="http://groups.drupal.org/semantic-web">Semantic Web</group>
 <group domain="http://groups.drupal.org/services">Services</group>
 <group domain="http://groups.drupal.org/soc-2008">SoC 2008</group>
 <pubDate>Tue, 22 Apr 2008 13:09:36 +0000</pubDate>
 <dc:creator>sumitk</dc:creator>
 <guid isPermaLink="false">10910 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Views versions </title>
 <link>http://groups.drupal.org/node/10729</link>
 <description>&lt;p&gt;While reading &lt;a href=&quot;http://drupal.org/node/245747&quot;&gt;#245747&lt;/a&gt;, I realized that the Views import/export service I wrote was only tested with Views 1, I have no idea if it works with Views 2 (although it seems doubtful). It also seems likely that the other Views services will be broken in Views 2. Anyone have any ideas what to do about this situation, if anything? Include a views_1_service and a views_2_service? It would be great if we could talk Earl into working the services into Views itself, although certainly he has enough to worry about right now.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/10729#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Tue, 15 Apr 2008 14:38:03 +0000</pubDate>
 <dc:creator>heyrocker</dc:creator>
 <guid isPermaLink="false">10729 at http://groups.drupal.org</guid>
</item>
<item>
 <title>How to use this modules</title>
 <link>http://groups.drupal.org/node/10550</link>
 <description>&lt;p&gt;Sorry for this very very very stupid questions, but how can I contact a drupal-services from another drupal-site ?&lt;/p&gt;
&lt;p&gt;I have read the documentation, see the source of services.module and *_service.module, but I have not understand how can I call this module from another site or via web browser (javascript/json service module).&lt;/p&gt;
&lt;p&gt;Please help this newbie.&lt;/p&gt;
&lt;p&gt;M.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/10550#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Tue, 08 Apr 2008 11:36:31 +0000</pubDate>
 <dc:creator>ziobudda</dc:creator>
 <guid isPermaLink="false">10550 at http://groups.drupal.org</guid>
</item>
<item>
 <title>How to get this working with custom services?</title>
 <link>http://groups.drupal.org/node/10484</link>
 <description>&lt;p&gt;I followed the Flash8 tutorial and wanted to get the SWF I outputted originally calling the node.load service to pick up the custom recipes service instead. Below is my stab at it, but it&#039;s not working. How would I access a custom service, or take this Flash example further?&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;// Picking up a Drupal node with flash remoting&lt;br /&gt;// Drupal must be set up with Services module enabled&lt;br /&gt;import mx.remoting.Service;&lt;br /&gt;import mx.remoting.PendingCall;&lt;br /&gt;import mx.rpc.RelayResponder;&lt;br /&gt;import mx.rpc.FaultEvent;&lt;br /&gt;import mx.rpc.ResultEvent;&lt;br /&gt;import mx.remoting.debug.NetDebug;&lt;/p&gt;
&lt;p&gt;// expose debugging info to clientside &amp;quot;NetConnection debugger&amp;quot; utility&lt;br /&gt;mx.remoting.debug.NetDebug.initialize();&lt;/p&gt;
&lt;p&gt;// create, position, and set params on three dynamic text fields: status, node-title, and node-body&lt;br /&gt;var tf:TextField = this.createTextField(&amp;quot;status&amp;quot;, 10, 0, 0, 200, 200);&lt;br /&gt;var ntitle:TextField = this.createTextField(&amp;quot;nodetitle&amp;quot;, 11, 0, 50, 200, 200);&lt;br /&gt;var nbody:TextField = this.createTextField(&amp;quot;nodebody&amp;quot;, 12, 0, 100, 200, 400);&lt;br /&gt;ntitle.html = true;&lt;br /&gt;ntitle.multiline = true;&lt;br /&gt;nbody.html = true;&lt;br /&gt;nbody.multiline = true;&lt;br /&gt;nbody.wordWrap = true;&lt;/p&gt;
&lt;p&gt;// establish connection with remote service gateway in Drupal and specify service&lt;br /&gt;// - /services/amfphp is AMFPHP in Services gateway&lt;br /&gt;// - node is one of the two default, exposed services in Services module.&amp;nbsp; The other is view.&lt;br /&gt;var recipe:Service = new Service(&amp;quot;http://localhost:8888/drupal-5.7Test/services/amfphp&amp;quot;, new Log(), &amp;quot;recipe&amp;quot;, null, null);&lt;br /&gt;// call service method&lt;br /&gt;// - load is one of three methods on the default node service&lt;br /&gt;// - pass in which node to load (hard coded &amp;quot;1&amp;quot; here for node 1)&lt;br /&gt;// - optional additonal param to node.load is what fields to return (like in a view?).&lt;br /&gt;// -- array of field names: node.load(1, [&amp;#039;title&amp;#039;, &amp;#039;body&amp;#039;]);&lt;br /&gt;// -- default is to send the entire node.&amp;nbsp; This example does that.&lt;br /&gt;var pc:PendingCall = recipe.all(1);&lt;br /&gt;// set up response handler functions&lt;br /&gt;pc.responder = new RelayResponder(this, &amp;quot;getData_Result&amp;quot;, &amp;quot;getData_Fault&amp;quot;);&lt;/p&gt;
&lt;p&gt;// set default status text&lt;br /&gt;tf.text = &amp;quot;no response from server yet.&amp;quot;;&lt;/p&gt;
&lt;p&gt;// success result handler&lt;br /&gt;function getData_Result( re:ResultEvent ):Void {&lt;br /&gt;// re is the object containing the response&lt;br /&gt;// two properties you can count on being populated for any node are re.result.title and re.result.body&lt;br /&gt;tf.text = &amp;quot;response:&amp;quot;;&lt;br /&gt;ntitle.htmlText = &amp;quot;&amp;lt;b&amp;gt;Node Title:&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;quot; + re.result;&lt;br /&gt;//nbody.htmlText = &amp;quot;&amp;lt;b&amp;gt;Node Body:&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;quot; + re.result.body;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;// failure result handler&lt;br /&gt;function getData_Fault( fe:FaultEvent ):Void {&lt;br /&gt;tf.text = &amp;quot;error&amp;quot;;&lt;br /&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Please Help! :O&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/10484#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Sun, 06 Apr 2008 00:03:10 +0000</pubDate>
 <dc:creator>BeechyBoy</dc:creator>
 <guid isPermaLink="false">10484 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Bring services and rules together</title>
 <link>http://groups.drupal.org/node/10376</link>
 <description>&lt;p&gt;I think it would be really useful to do a &lt;a href=&quot;http://drupal.org/project/rules&quot;&gt;rules engine&lt;/a&gt; integration, so one can do service calls by configuring rules (per UI). It looks like one has already to specify the arguments for a service - so we would have to convert this to the format of the rules API and expose an action per service. Basically that should do it already.&lt;/p&gt;
&lt;p&gt;Have I forgotten something? What do you think about this idea?&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/10376#comments</comments>
 <group domain="http://groups.drupal.org/rules">Rules</group>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Wed, 02 Apr 2008 09:04:40 +0000</pubDate>
 <dc:creator>fago@drupal.org</dc:creator>
 <guid isPermaLink="false">10376 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Voting API service</title>
 <link>http://groups.drupal.org/node/10365</link>
 <description>&lt;p&gt;I just uploaded a stand-alone module that provides Services methods for the Voting API. This allows external applications to access and modify Voting API data for Drupal objects. For example, a Flash application could implement an interface for voting on nodes.&lt;/p&gt;
&lt;p&gt;I&#039;ve submitted this as a feature request to the Voting API project at:&lt;br /&gt;
&lt;a href=&quot;http://drupal.org/node/241453&quot; title=&quot;http://drupal.org/node/241453&quot;&gt;http://drupal.org/node/241453&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you use the Voting API and Services, please help me test this and support its inclusion in future Voting API releases. Let me know if you have any questions or suggestions.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/10365#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1470">services</category>
 <category domain="http://groups.drupal.org/taxonomy/term/179">voting</category>
 <category domain="http://groups.drupal.org/taxonomy/term/233">votingapi</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Tue, 01 Apr 2008 19:54:17 +0000</pubDate>
 <dc:creator>detour</dc:creator>
 <guid isPermaLink="false">10365 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Adobe AIR for Linux</title>
 <link>http://groups.drupal.org/node/10322</link>
 <description>&lt;p&gt;Check out the newly released &lt;a href=&quot;http://www.adobe.com/go/airlinux&quot;&gt;Adobe AIR for Linux&lt;/a&gt; (alpha) &lt;a href=&quot;http://www.adobe.com/go/airlinux&quot; title=&quot;http://www.adobe.com/go/airlinux&quot;&gt;http://www.adobe.com/go/airlinux&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Also an update to the &lt;a href=&quot;http://www.adobe.com/go/flexbuilder_linux&quot;&gt;alpha version of Adobe Flex(r) Builder(tm) 3 for Linux&lt;/a&gt; software is also available on Adobe Labs today at &lt;a href=&quot;http://www.adobe.com/go/flexbuilder_linux&quot; title=&quot;http://www.adobe.com/go/flexbuilder_linux&quot;&gt;http://www.adobe.com/go/flexbuilder_linux&lt;/a&gt; .&lt;/p&gt;
&lt;p&gt;Full press release at: &lt;a href=&quot;http://www.adobe.com/aboutadobe/pressroom/pressreleases/200803/033108AdobeAIRforLinux.html&quot; title=&quot;http://www.adobe.com/aboutadobe/pressroom/pressreleases/200803/033108AdobeAIRforLinux.html&quot;&gt;http://www.adobe.com/aboutadobe/pressroom/pressreleases/200803/033108Ado...&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/10322#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/3429">adobe</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4654">adobe.air</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4656">adobe.flex</category>
 <category domain="http://groups.drupal.org/taxonomy/term/3066">AIR</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1523">Flex</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4655">flexbuilder</category>
 <category domain="http://groups.drupal.org/taxonomy/term/911">linux</category>
 <group domain="http://groups.drupal.org/adobe-technologies">Adobe Technologies</group>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Mon, 31 Mar 2008 17:26:46 +0000</pubDate>
 <dc:creator>ccharlton</dc:creator>
 <guid isPermaLink="false">10322 at http://groups.drupal.org</guid>
</item>
<item>
 <title>GSoC-08:Secure OAuth Services</title>
 <link>http://groups.drupal.org/node/10268</link>
 <description>&lt;p&gt;This is a Google Summer of Code project proposal by &lt;a href=&quot;http://groups.drupal.org/user/16636&quot;&gt;Sumit Kataria&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Abstract&lt;/h3&gt;
&lt;p&gt;In today&#039;s web, people do not like to share or exchange all their stuff on one service.  Today, we prefer to use Flickr for photos, YouTube for videos, Amazon for shopping, etc. In order to make integration of different web services (in order to satisfy all customer/user needs), APIs using Services API in a secure fashion are used.  To provide a secure way of this type of communication, OAuth is a very good option. The current system of API keys used by Services API is a combination of user name and password, but this key is too unsafe to share around on web. Also this key cannot be unshared once it is shared or handed over to other web service. The token provided by OAuth system will will provide a much safer and risk free browsing experience to users.&lt;/p&gt;
&lt;p&gt;Integration of OAuth 1.0 core to Drupal&#039;s Service API will provide users/administrators a pluggable authentication system such that they can choose between the current system of API keys, or OAuth token system to access desired web services. The method OAuth uses is to provide “tokens” to users instead of keys. Now for each kind of web service, OAuth issues a different kind of token to user. Also, these tokens are time bound an amount of access time to another service and then it expires automatically (could be a two hour access time).&lt;/p&gt;
&lt;p&gt;Does this mean that OAuth is like OpenID?&lt;br /&gt;
The OAuth approach might be considered better than the OpenID approach as users don&#039;t have to do anything to undertstand it. They just browse normally with their existing methods but in a secure manner.&lt;/p&gt;
&lt;p&gt;OAuth integration with Service API will rescue users, and developers, who put themselves at risk by sharing their private information.&lt;/p&gt;
&lt;h3&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;By means of this project, I would like to contribute a module to the Drupal community which will make the existing Service API a pluggable authentication module such that users will be able to choose between existing API keys method or OAuth method to access other web services. Drupal&#039;s existing Services API implementation is pretty weak so integrating it with open protocol OAuth will enhance security features.&lt;/p&gt;
&lt;h3&gt;Plan&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;The main aim of project will be to put a layer of security on top of calls made Services API. Now this call from Service API will issue a token via OAuth 1.0 which will open up a separate session with remote services and then will make calls from there.&lt;/li&gt;
&lt;li&gt;OAuth core 1.0 does not presently provide any support for formats like – XML-RPX, JSON, AMF, REST, SOAP, end point detection, etc. which are used by Services API. So my aim will be here to build extensions over this to provide support for these features.&lt;/li&gt;
&lt;li&gt;Admin/users would be able to choose between existing API key methods or OAuth 1.0 token to access external web services.&lt;/li&gt;
&lt;li&gt;Developers will be able to add services over Services API using pluggable “service” module like the way they do before, but now the way of interaction of services with Services API will be using OAuth to make it more secure over current api key method.&lt;/li&gt;
&lt;li&gt;Second part of Services API the pluggable “server” module which allows support for other protocols like JSON, XML-RCP, SOAP, REST etc. will now send calls to security layer over Services API by OAuth instead of sending it directly to other web services.&lt;/li&gt;
&lt;li&gt;Now here extensions made by the student (for JSON, XML-RCP, SOAP, REST, end detection, etc.) will receive these calls and will issue a specific api key (token) according to service being called by Service API.&lt;/li&gt;
&lt;li&gt;The final api key or token issued will be using OAuth 1.0 core and will interact with requested web service without disclosing any potentially important information of user like passwords etc.
&lt;li&gt;This method will be good to compatible with existing methods. Also we will try to reuse the web standards the best possible way.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Future Plans&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Providing language support and automatically identifying this for user.&lt;/li&gt;
&lt;li&gt;OpenID integration with this.&lt;/li&gt;
&lt;li&gt;Make use of full range of available signing in algorithms.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Project Benefits To Drupal&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Project completion will provide Drupal a module which will could be plugged in existing Services API such that it will make use of OAuth 1.0 core to issue tokens to access other web services over web.&lt;/li&gt;
&lt;li&gt;Extensions will be build over OAuth 1.0 such that it will support features like support for XML-RCP, JSON, AMF, REST, SOAP, discovery of end point etc(calls from Services API).&lt;/li&gt;
&lt;li&gt;Site users will be able to share their private resources like photos, videos, contact lists, bank account information, etc, stored on one site with another site without giving their user names and passwords to other site. So it will make our browsing secure and risk free over web.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Derivables&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Investigation and learning : 1 weeks&lt;/li&gt;
&lt;li&gt;Programming Time : 7 weeks&lt;/li&gt;
&lt;li&gt;Bug Fixing and feature adding time : 3 weeks&lt;/li&gt;
&lt;li&gt;Documentation : 4 Days&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Project Motivation&lt;/h3&gt;
&lt;p&gt;Drupal is a widely used and highly adopted CMS with millions of users all around the globe. With completion of my project I would be able to reach those people and will be able to make their browsing experience on web secure and risk less.&lt;/p&gt;
&lt;h3&gt;Biography&lt;/h3&gt;
&lt;p&gt;Rest in my application at google ....&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-2008&quot;&gt;SoC 2008&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/10268#comments</comments>
 <group domain="http://groups.drupal.org/semantic-web">Semantic Web</group>
 <group domain="http://groups.drupal.org/services">Services</group>
 <group domain="http://groups.drupal.org/soc-2008">SoC 2008</group>
 <pubDate>Sat, 29 Mar 2008 19:29:20 +0000</pubDate>
 <dc:creator>Rob Loach</dc:creator>
 <guid isPermaLink="false">10268 at http://groups.drupal.org</guid>
</item>
<item>
 <title>OAuth and Security</title>
 <link>http://groups.drupal.org/node/10138</link>
 <description>&lt;p&gt;One issue with the &lt;a href=&quot;http://drupal.org/project/services&quot;&gt;Services API&lt;/a&gt; is its weak implementation of API keys.  Although it does work, it could be better.  It is probably worth it to investigate &lt;a href=&quot;http://oauth.net/&quot;&gt;OAuth&lt;/a&gt;, an open protocol to &lt;em&gt;&quot;allow secure API authentication in a simple and standard method from desktop and web applications&quot;&lt;/em&gt;.  Some of you got the chance to see Boris&#039; talk on this in Boston at Drupalcon, any thoughts? How would it &lt;a href=&quot;http://drupal.org/node/238814&quot;&gt;effect Services&lt;/a&gt;?&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/10138#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/4584">OAuth</category>
 <category domain="http://groups.drupal.org/taxonomy/term/497">security</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1470">services</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Wed, 26 Mar 2008 05:16:53 +0000</pubDate>
 <dc:creator>Rob Loach</dc:creator>
 <guid isPermaLink="false">10138 at http://groups.drupal.org</guid>
</item>
<item>
 <title>JSON Server and Facebook</title>
 <link>http://groups.drupal.org/node/9948</link>
 <description>&lt;p&gt;I am currently using Flex to consume an amfphp service, and it works great.  However, when you try to use the swf on a Facebook profile, you have to click on an image first in order to load the swf.&lt;/p&gt;
&lt;p&gt;My thought was to use the JSON server to return JSON to my facebook app.  However, I get hit with the cross domain security issue.  Has anyone here successfully accessed the JSON Server from a remote domain?&lt;/p&gt;
&lt;p&gt;-Erich-&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9948#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1522">AMFPHP</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1523">Flex</category>
 <category domain="http://groups.drupal.org/taxonomy/term/235">javascript</category>
 <category domain="http://groups.drupal.org/taxonomy/term/521">json</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1470">services</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Wed, 19 Mar 2008 18:36:42 +0000</pubDate>
 <dc:creator>ebeyrent</dc:creator>
 <guid isPermaLink="false">9948 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Organic groups..?</title>
 <link>http://groups.drupal.org/node/9623</link>
 <description>&lt;p&gt;Hello.. I&#039;m working on my little app here.. have figured out login, upload avatar.. and so on.. &lt;a href=&quot;http://metroklub.sk/drulog/bin-release/DrupalLoginApp.html&quot; title=&quot;http://metroklub.sk/drulog/bin-release/DrupalLoginApp.html&quot;&gt;http://metroklub.sk/drulog/bin-release/DrupalLoginApp.html&lt;/a&gt; &amp;lt;-- don&#039;t know how long it will hang there.. anyway I would like my users to create their own group and let others to join in if they are approved.. nothing really complicated [i guess] but now I don&#039;t know which direction to take.. should I role out my own piece of php code with included bootstrap.. or install an organic groups module and try to make a service for it?.. [I don&#039;t think I&#039;m skilled enough to write my own services].. or just save nodes and somehow work it out with permissions..? well I&#039;m lost and would like to hear some other opinions..&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9623#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1568">organic groups</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1470">services</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Mon, 10 Mar 2008 23:22:16 +0000</pubDate>
 <dc:creator>napoly</dc:creator>
 <guid isPermaLink="false">9623 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Format of the node object in the node.save method form (in services admin interface)</title>
 <link>http://groups.drupal.org/node/9588</link>
 <description>&lt;p&gt;I would like to test the node.save method of the &quot;node&quot; service in the browser of the &quot;services&quot; admin interface.&lt;br /&gt;
(/admin/build/services/browse/node.save)&lt;/p&gt;
&lt;p&gt;In order to do that, I have to provide the form with an object that will be added to Drupal (if everything works correctly).&lt;/p&gt;
&lt;p&gt;But I can&#039;t figure out what the format of this node-object should be (array, json,...). What is the syntax ?&lt;/p&gt;
&lt;p&gt;Any help would be appreciated.&lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9588#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1313">services flex flash json</category>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Mon, 10 Mar 2008 12:31:17 +0000</pubDate>
 <dc:creator>geraud</dc:creator>
 <guid isPermaLink="false">9588 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Taxonomies/Categories</title>
 <link>http://groups.drupal.org/node/9371</link>
 <description>&lt;p&gt;Hi I am new to Drupal services, how do make sure an article is posted to the correct categories/taxonomies. I can create new articles via Services without any problem but assigning them to categories is proving a little harder. If it makes any difference I am using the services module with Python.&lt;/p&gt;
&lt;p&gt;Thanks in advance.&lt;/p&gt;
&lt;p&gt;rod&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9371#comments</comments>
 <group domain="http://groups.drupal.org/services">Services</group>
 <pubDate>Tue, 04 Mar 2008 16:18:19 +0000</pubDate>
 <dc:creator>rodmc</dc:creator>
 <guid isPermaLink="false">9371 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Web Services in Drupal 7</title>
 <link>http://groups.drupal.org/node/9213</link>
 <description>&lt;p&gt;Just a quick note that &lt;a href=&quot;http://drupal.org/user/4481&quot;&gt;nedjo&lt;/a&gt; posted a note about &lt;strong&gt;&lt;a href=&quot;http://drupal.org/node/145551#comment-747828&quot;&gt;Services module going into core&lt;/a&gt;&lt;/strong&gt;.  This would allow use of XML-RPC, JSON, RSS, REST, SOAP and more to be loaded through a common Services API.&lt;/p&gt;
&lt;p&gt;A &lt;a href=&quot;http://boston2008.drupalcon.org/codesprint&quot;&gt;Code Sprint&lt;/a&gt; will take place in Boston this coming Friday that will focus on the inclusion of this new Services API.&lt;/p&gt;
&lt;p&gt;Things to consider with Drupal 7:&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;a href=&quot;http://drupal.org/node/113435&quot;&gt;Data API&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;A common interface for providing a way of communication with external services will require a common method of representing data.  The Data API will help this.&lt;/dd&gt;
&lt;dt&gt;&lt;a href=&quot;http://drupal.org/node/221964&quot;&gt;Registry&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;The Registry might allow us to specify how much of the Drupal bootstrap we need when creating/using services.&lt;/dd&gt;
&lt;dt&gt;&lt;a href=&quot;http://gophp5.org/&quot;&gt;PHP 5&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;Drupal 7 will target PHP 5, so this means we can take advantage of the libraries that gives us &lt;a href=&quot;http://ca3.php.net/soap&quot;&gt;SOAP&lt;/a&gt;, &lt;a href=&quot;http://ca3.php.net/simplexml&quot;&gt;SimpleXML&lt;/a&gt;, and many others&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Again, the URL for the issue is:  &lt;a href=&quot;http://drupal.org/node/145551&quot; title=&quot;http://drupal.org/node/145551&quot;&gt;http://drupal.org/node/145551&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9213#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/2379">Drupal 7</category>
 <category domain="http://groups.drupal.org/taxonomy/term/521">json</category>
 <category domain="http://groups.drupal.org/taxonomy/term/839">RDF</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1470">services</category>
 <category domain="http://groups.drupal.org/taxonomy/term/2148">web services</category>
 <category domain="http: