I am using the protocol directly from python to update spreadsheet
rows, however I cannot edit any rows because the API will not return a
proper edit url.

The bug can be reproduced with the following, which is the equivalent
of what the python code is calling.

$ curl -H "Authorization: GoogleLogin auth=..." \
         -H "GData-Version: 3.0" \
         
https://spreadsheets.google.com/feeds/list/0AlW0JurWvXP2dDhSZ3RIMUs1OGtxOU4zZ2I3ZG9BS0E/od6/private/full/cokwr

Note that the URL above is for a spreadsheet row, which returns the
following

<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"; xmlns:gsx="http://
schemas.google.com/spreadsheets/2006/extended" xmlns:gd="http://
schemas.google.com/g/2005" gd:etag="&quot;PRlLE0gSVSt7ImA.&quot;">
        <id>https://spreadsheets.google.com/feeds/list/
0AlW0JurWvXP2dDhSZ3RIMUs1OGtxOU4zZ2I3ZG9BS0E/od6/cokwr</id>
        <updated>2010-12-06T22:36:58.704Z</updated>
        <app:edited xmlns:app="http://www.w3.org/2007/
app">2010-12-06T22:36:58.704Z</app:edited>
        <category scheme="http://schemas.google.com/spreadsheets/2006";
term="http://schemas.google.com/spreadsheets/2006#list"/>
        <title>Some Title</title>
        <content/>
        <link rel="self" type="application/atom+xml" href="https://
spreadsheets.google.com/feeds/list/
0AlW0JurWvXP2dDhSZ3RIMUs1OGtxOU4zZ2I3ZG9BS0E/od6/private/full/cokwr"/>
        <link rel="edit" type="application/atom+xml" href="https://
spreadsheets.google.com/feeds/list/
0AlW0JurWvXP2dDhSZ3RIMUs1OGtxOU4zZ2I3ZG9BS0E/od6/private/full/cokwr"/>
        <gsx:videoname>Some Title</gsx:videoname>
        <gsx:bookingkey/>
        <gsx:title/>
        <gsx:date/>
        <gsx:speaker/>
</entry>

Notice the edit uri in the <link rel="edit"...> tag does not include a
version number. As such whenever I attempt to update this row I
receive the error

400 Bad Request
Invalid request URI

Doing the same request for 
https://spreadsheets.google.com/feeds/list/0...E/od6/private/full/cokwr
from an authenticated browser (Chrome) however returns

<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"; xmlns:gsx="http://
schemas.google.com/spreadsheets/2006/extended">
        <id>https://spreadsheets.google.com/feeds/list/
0AlW0JurWvXP2dDhSZ3RIMUs1OGtxOU4zZ2I3ZG9BS0E/od6/private/full/cokwr</
id>
        <updated>2010-12-06T22:36:58.704Z</updated>
        <category scheme="http://schemas.google.com/spreadsheets/2006";
term="http://schemas.google.com/spreadsheets/2006#list"/>
        <title type="text">Some Title</title>
        <content type="text"/>
        <link rel="self" type="application/atom+xml" href="https://
spreadsheets.google.com/feeds/list/
0AlW0JurWvXP2dDhSZ3RIMUs1OGtxOU4zZ2I3ZG9BS0E/od6/private/full/cokwr"/>
        <link rel="edit" type="application/atom+xml" href="https://
spreadsheets.google.com/feeds/list/
0AlW0JurWvXP2dDhSZ3RIMUs1OGtxOU4zZ2I3ZG9BS0E/od6/private/full/cokwr/
1pmphoo"/>
        <gsx:videoname>Some Title</gsx:videoname>
        <gsx:bookingkey/>
        <gsx:title/>
        <gsx:date/>
        <gsx:speaker/>
</entry>

Notice now the  <link rel="edit"...> tag *does* include a version
number, allowing me to successfully update.

I guess the first question should be, is this expected behaviour? The
auth token is generated by authenticating to 
https://www.google.com/accounts/ClientLogin
under the service "wise".

If this is expected, can someone tell me the proper method. If it is
not expected I am looking for work arounds.

Thanks

Reply via email to