Proposed Abstract: This proposal aims to create a module that implements the GData protocol specification in Drupal. The Google data APIs provide a simple standard protocol, called "GData", for reading and writing data on the web using either of two standard XML-based syndication formats: Atom or RSS. This module will handle all the basic stuff a developer shouldn't have to worry about when developing modules that extend its functionality such as data transfer, protocol adherence, and authentication. It will expose its own API which will allow other developers to create modules that easily interact with information provided by Google's many service APIs. Using this module, module developers who need access to this information need only concern themselves with what's important: the data.
I understand that there is another project proposal for Google Contacts API Integration. I think that a single module that does everything involved in interacting with the Contacts API is potentially an unnecessarily big task. My proposal seeks to make the creation of such a module, as well as many other modules that need to use GData, easy and maintainable.
Also, there's been talk among some students about creating a Social Integration API/module. I believe that my proposal and its API would make the creation of such a module easier. However, I do see a potential problem in that it would be beneficial to most developers for there to be a single API spec (maybe called "Drupal Web Services API") that these modules (GData and other modules providing APIs to web services) are exposing to Drupal. At the very least, the API that this module would expose to Drupal needs to be similar in syntactics to Drupal's core APIs. Some, if not a lot of, guidance would be appreciated on this subject.
| Attachment | Size |
|---|---|
| Google Data APIs Protocol (GData Module).pdf | 31.93 KB |

Comments
Writing up my Application
I should have my full application written up and posted here for review by tomorrow evening, if not earlier. I hope I get some input on this!
Benefits to the Drupal/Open Source Community
Here's a draft of the benefits part of my application:
This module will benefit Drupal by providing developers with an easy way to interact with information provided by Google's many service APIs without worrying about all the behind-the-scenes stuff that goes into accessing and modifying that information. This opens up a world of possibilities for integrating Google applications into Drupal. Some ideas that could be more easily implemented using the API provided by a GData module include, but are not limited to, the following:
Many people will benefit from this module. Developers who need to harness the powers of GData can do so with relative ease. Users who use contributed modules that make use of the API exposed by the GData will benefit by knowing that very interesting things are being done with their Google services while still maintaining a high level of security and without exposing any personal information except that information that they approve.
The likely user-base for this module is Drupal developers. Currently, there is not single way to access Google APIs in Drupal and so developers are coming up with varying implementations of accessig GData on a module-by-module basis. This module is an improvement by providing a single, maintainable, and easy-to-use interface for Drupal developers to get what they need out of Google services.
Common base for Google API modules or only GData implementation?
I am sure you have seen that there are at least three Google Data API modules (youtube, contacts, document list) and probably some contrib modules that use Google Data APIs.
Would your module handle all common tasks of the Google Data API or only the GData protocol? Or: how would your module help with integrating common tasks between the proposed modules? (See the discussion about sharing functionality here). Please clarify if I am asking an uneducated question. My Google API expertise stems from flying over the documentation.
I see great potential for this module to be the common base for some proposed and existing modules.
http://www.twitter.com/lxbarth
GData as a Protocol
To be concise, this module would help with integrating common tasks between the other proposed modules.
The Google service APIs all share GData as a protocol specification for how the data should be interacted with between applications. The APIs differ only in the structures of the data transported using the protocol. Each application (or derived module [ex: google contacts module]) would be responsible for handling the data once recieved.
The GData module would allow modules to easily get the data without worrying about how they got the data by providing a Drupal-like API for accessing the Google APIs which provides transport authentication and easy querying.
Also, if the GData specification gets updated, this module can be updated to support the newer specification. This potentially allows dependent modules to gain new functionality offered by the specification update without breaking their current functionality due to the API-to-API nature of the GData module.
GData
I made a quick note in the GData issue queue regarding a GData module revamp. It would be a good idea to give it a read over and think over the design a bit, as there are some components out there that you could already use (Zend Framework, Services, etc).
You could do so much with this system, that it would also be worth it to get a strict feature set that you'd be working towards for the end of the summer.
The Zend GData Client Libraries
Since Zend provides these libraries independently of the Zend Framework, it should be possible to wrap the libraries in a way that makes accessing their features just as easy as anything in Drupal.
I suppose the goal would be to use this, or possibley some other (but why?), library to implement a module that provides a Drupal-like API for interacting with the Google APIs.
As for a feature set, I haven't thought about that yet. Although, supporting most, if not all, of the protocol implementation and possibly including an example module are prime targets.
I've uploaded my application
I've uploaded my application to the main post in this discussion. I'd like for someone from the community to review it, criticize it, and make suggestions before I officially submit it so that I can make changes where necessary.
I think its a great idea ..
I have written a application for http://groups.drupal.org/node/9829 and I wanted this kind of framework to talk GDATA protocol with google services .. I think drupal should have a framework of Gdata protocol so that integrating Drupal with google services becomes easier :)
Anything ever come of this?
Sam Rose
Social Synergy
Open Source Ecology
P2P Foundation
Sam Rose
Hollymead Capital Partners
P2P Foundation
Social Media Classroom
meep?
meep?
~kwt