Ik ben wat aan het experimenteren met de Google Docs API. De laatste (3) is helaas (nog?) niet verkrijgbaar voor PHP dus het is puur experimenteren. De inlog etc gebeurt nog wel via Zend, en dat werkt allemaal prima. Nu wil ik de permissie van een document aanpassen. Ik wil een emailadres toevoegen van iemand die dan de writer permissie krijgt. Via de google docs api kwam ik erachter dat dit met een POST HTTP request moet. De volgende code heb ik gebruikt:
Dit geeft mij een 400 error:
Fatal error: Uncaught exception 'Zend_Gdata_App_HttpException' with message 'Expected response code 200, got 400 Invalid request URI' in...
Alleen vind ik dat raar. De link is namelijk direct gekopieerd vanuit een documentlijst die ik via de get() methode heb verkregen. Als ik het documentId via de get() functie meegeef krijg ik het document, dat is dus ook goed. En de rest van de code haal ik van de google docs api. Zit het dan toch daar ergens fout?
Google docs api: http://code.google.com/ap...opers_guide_protocol.html
(ctrl+f: Modifying the ACL feed)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| $service = Zend_Gdata_Docs::AUTH_SERVICE_NAME; $client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service); $service = new Zend_Gdata($client); $xml = "<entry xmlns=\"http://www.w3.org/2005/Atom\" xmlns:gAcl='http://schemas.google.com/acl/2007'> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/acl/2007#accessRule'/> <gAcl:role value='reader'/> <gAcl:scope type='user' value='new_writer@example.com'/> </entry>"; $data = $service->post($xml, 'http://docs.google.com/feeds/documents/private/full/document%3A0AZ1YcuoFtsN-ZG5kYzNjcF8wZmZnYnJiZjU/gatlyvpm'); print_r($data); |
Dit geeft mij een 400 error:
Fatal error: Uncaught exception 'Zend_Gdata_App_HttpException' with message 'Expected response code 200, got 400 Invalid request URI' in...
Alleen vind ik dat raar. De link is namelijk direct gekopieerd vanuit een documentlijst die ik via de get() methode heb verkregen. Als ik het documentId via de get() functie meegeef krijg ik het document, dat is dus ook goed. En de rest van de code haal ik van de google docs api. Zit het dan toch daar ergens fout?
Google docs api: http://code.google.com/ap...opers_guide_protocol.html
(ctrl+f: Modifying the ACL feed)
AMD Phenom II X6 1090T | 2x 4GB Kingston | Geforce GTX 560TI | Creative I-Trigue L3450