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=""PRlLE0gSVSt7ImA."">
<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