Just as a follow up I confirmed that this is an issue and have entered
it here:

http://code.google.com/p/gdata-issues/issues/detail?id=835

Please subscribe to that issue to be notified of updates.

Thanks
- Jochen

On Oct 20, 12:17 pm, "Jochen Hartmann (Google)"
<[EMAIL PROTECTED]> wrote:
> Hi,
>
> I would recommend checking out this thread:
>
> http://groups.google.com/group/Google-Docs-Data-APIs/browse_thread/th...
>
> Cheers,
> - Jochen
>
> On Oct 18, 7:30 pm, HippoMan <[EMAIL PROTECTED]> wrote:
>
> > I found another, better way to do this (refer to my code above):
>
> > // ... etc. ...
> > $query = new Zend_Gdata_Spreadsheets_DocumentQuery();
> > $query->setDocumentType('spreadsheets');
> > try {
> >     $feed = $ssService->getSpreadsheetFeed($query);}
>
> > catch (Exception $e) {
> >   echo "<pre>\n";
> >   print_r($e);
> >   echo "</pre>\n";
> >   exit(0);}
>
> > // ... etc. ...
>
> > In other words, we create a Zend_Gdata_Spreadsheets_DocumentQuery
> > object and we set its document type to 'spreadsheets'.  Then, we pass
> > this query object as an argument to the getSpreadsheetFeed method.
> > This causes it to automatically modify the URI that it uses internally
> > into the same form that I explicitly coded in my previous message.
>
> > So it appears that the Zend Gdata API indeed has a way to manage the
> > setting of this URI without the programmer having to explicitly set
> > it, and without having to hack the underlying code.
>
> > Note that we have to be careful not to reuse this query object "as is"
> > if we're subsequently calling getSpreadsheetKey, because the document
> > type cannot be set to 'spreadsheets' when that method is being called.
> > If we reuse that object, we have to do this before calling
> > getSpreadsheetsKey ...
>
> > $query->setDocumentType('');
>
> > This begs a new question: is any of this documented? I couldn't find
> > any docs which describe how to use the methods of the
> > Zend_Gdata_Spreadsheets_DocumentQuery in order to solve this kind of
> > problem, and I had to figure it out by looking through the source code
> > for the Zend/Gdata package. This apparent lack of docs caused me to
> > waste quite a few hours, and I would guess that this loss of person-
> > hours has been multiplied many times over by others who have to solve
> > the same problems.
>
> > It's good that we have these forums where we can share our knowledge,
> > but I believe that its incumbent upon the developers/releasers of Zend/
> > Gdata to provide more detailed documentation about the structure of
> > the objects they release and their use in these common tasks. Sample
> > code is provided and it's helpful, but it isn't enough without proper
> > documentation.
>
> > ... or have I simply missed a discussion of this somewhere in the
> > official docs?
>
> > On Oct 18, 12:49 am, HippoMan <[EMAIL PROTECTED]> wrote:
>
> > > Well, I found a solution:
>
> > >http://groups.google.com/group/Google-Docs-Data-APIs/browse_thread/th...
>
> > > I have to pass the following argument to getSpreadsheetFeed():
>
> > > 'http://spreadsheets.google.com/feeds/spreadsheets/private/full'
>
> > > In other words ...
>
> > > $feed = $ssService->getSpreadsheetFeed('http://spreadsheets.google.com/
> > > feeds/spreadsheets/private/full');
>
> > > This is necessary because the default URI used within the
> > > Zend_Gdata_Spreadsheets class isn't correct ... at least not for the
> > > way I'm using it here.  The default is 'http://spreadsheets.google.com/
> > > feeds/spreadsheets'.
>
> > > Does that default work for certain kinds of spreadsheets, or is it no
> > > longer valid at all? If it's the latter, then the ZendGdata code needs
> > > to be changed.
>
> > > It turns out that the gdata.py API uses a URI of the form
> > > http://{X}/feeds/spreadsheets/{Y}/{Z} where {X} defaults to
> > > 'spreadsheets.google.com', {Y} defaults to 'private', and {Z} defaults
> > > to 'full', and where {X}, {Y}, and {Z} are overridable at run time.
> > > Methinks that the ZendGdata API should use the same defaults.
>
> > > On Oct 17, 10:39 pm, HippoMan <[EMAIL PROTECTED]> wrote:
>
> > > > I'm trying to use the Zend Gdata API to retrieve data from some Google
> > > > spreadsheets, and I'm following the pattern described in this
> > > > document:http://framework.zend.com/manual/en/zend.gdata.spreadsheets.html.
> > > > However, when I issue the getSpreadsheetFeed() method as described in
> > > > that document, my application throws an exception.
>
> > > > Here's my code (email and password changed to dummy values):
>
> > > > $email = '[EMAIL PROTECTED]';
> > > > $pw    = 'my-password';
> > > > $service = Zend_Gdata_Spreadsheets::AUTH_SERVICE_NAME;
> > > > try {
> > > >  $client = Zend_Gdata_ClientLogin::getHttpClient($email, $pw,
> > > > $service);}
>
> > > > catch (Zend_Gdata_App_CaptchaRequiredException $cre) {
> > > >   echo 'URL of CAPTCHA image: ' . $cre->getCaptchaUrl() . "<br/>\n";
> > > >   echo 'Token ID: ' . $cre->getCaptchaToken() . "<br/>\n";
> > > >   exit(0);}
>
> > > > catch (Zend_Gdata_App_AuthException $ae) {
> > > >   echo 'Problem authenticating: ' . $ae->exception() . "<br/>\n";
> > > >   exit(0);}
>
> > > > echo "Authenticated<br/>\n";
> > > > $ssService = new Zend_Gdata_Spreadsheets($client);
> > > > echo "ssService created<br/>\n";
> > > > $feed = $ssService->getSpreadsheetFeed();
> > > > echo "feed created<br/>\n"
> > > > foreach ($feed->entries as $entry) {
> > > >   echo $entry->title->text .' '. $entry->content->text . "<br/>\n";
>
> > > > }
>
> > > > The exception gets thrown right at the getSpreadsheetFeed() method
> > > > call. Here are the first few lines:
>
> > > > An error occurred
> > > > Application error
> > > > Exception information:
>
> > > > Message: Expected response code 200, got 404
> > > > Not Found
> > > > Error 404
>
> > > > Stack trace:
>
> > > > #0 /home/ofrecord/sites/hotelp/library/Zend/Gdata.php(201):
> > > > Zend_Gdata_App->performHttpRequest('GET', 'http://spreadsh...', Array,
> > > > NULL, NULL, NULL)
> > > > #1 /home/ofrecord/sites/hotelp/library/Zend/Gdata/App.php(610):
> > > > Zend_Gdata->performHttpRequest('GET', 'http://spreadsh...')
> > > > #2 /home/ofrecord/sites/hotelp/library/Zend/Gdata/App.php(541):
> > > > Zend_Gdata_App->get('http://spreadsh...')
> > > > #3 /home/ofrecord/sites/hotelp/library/Zend/Gdata/App.php(147):
> > > > Zend_Gdata_App->importUrl('http://spreadsh...', 'Zend_Gdata_Spre...')
> > > > #4 /home/ofrecord/sites/hotelp/library/Zend/Gdata.php(148):
> > > > Zend_Gdata_App->getFeed('http://spreadsh...', 'Zend_Gdata_Spre...')
> > > > #5 /home/ofrecord/sites/hotelp/library/Zend/Gdata/
> > > > Spreadsheets.php(139): Zend_Gdata->getFeed('http://spreadsh...',
> > > > 'Zend_Gdata_Spre...')
> > > > #6 /home/ofrecord/sites/hotelp/application/views/scripts/index/
> > > > index.phtml(27): Zend_Gdata_Spreadsheets->getSpreadsheetFeed()
> > > > ... etc. ...
>
> > > > The email address and password are correct. Furthermore, making the
> > > > corresponding calls through the gdata.py API works without a problem.
>
> > > > Can anyone tell me what I'm doing wrong when using this Zend API?
>
> > > > Thanks in advance.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Docs Data APIs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/Google-Docs-Data-APIs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to