Ik heb met behulp van de zend framework een simpel PHP-scriptje gemaakt waarmee ik items tussen een bepaalde datum uit mijn Google Calendar kalender kan halen. Dit gebeurt d.m.v. een private XML bestand welke uniek geidentificeerd wordt door een key in de URL. So far so good.
Ik heb in mijn gmail-account twee kalenders, eentje voor mijzelf en eentje die ik deel met mijn vriendin, zodat we beide van elkaar op de hoogte zijn
Erg handig moet ik jullie bekennen! Maar nu het probleem. Mijn eigen XML kan ik prima benaderen met m'n script. De key die daarvoor nodig is haal ik uit de settings van Google Calendar.
Maar mijn tweede xml, die van mijn tweede kalender, die werkt niet! Beide kalenders vallen onder hetzelfde emailadres. Ik krijg de volgende foutmelding als ik het script probeer te starten:
Erg vreemd toch, aangezien het bij mijn andere kalender prima werkt! Ik zie geen opties in Google Calendar om de XML te 'activeren' ofzo (dit hoefde bij m'n andere kalender ook niet)
Wat doe ik verkeerd?
Ziehier m'n script: (Zend is dus vereist)
UPDATE
Ik heb zojuist een nieuwe key aangevraagd voor mijn goed-werkende kalender. De oude key gaf dezelfde foutmelding als mijn tweede kalender altijd geeft. Na aanvraag van een nieuwe key voor mijn eigen kalender werkt het script dus wel! Echt supervaag! Heb ik nu een bug in Google Calendar gevonden o.i.d.?
Ik heb in mijn gmail-account twee kalenders, eentje voor mijzelf en eentje die ik deel met mijn vriendin, zodat we beide van elkaar op de hoogte zijn
Maar mijn tweede xml, die van mijn tweede kalender, die werkt niet! Beide kalenders vallen onder hetzelfde emailadres. Ik krijg de volgende foutmelding als ik het script probeer te starten:
code:
1
2
3
4
5
6
7
8
9
| Fatal error: Uncaught exception 'Zend_Feed_Exception' with message 'Feed failed to load, got
response code 404' in D:\Webserver\intranet\gdata\library\Zend\Feed.php:177 Stack trace: #0
D:\Webserver\intranet\gdata\library\Zend\Gdata.php(121): Zend_Feed::import('http://www.goog...') #1
D:\Webserver\intranet\gdata\library\Zend\Gdata\Calendar.php(95):
Zend_Gdata->getFeed('http://www.goog...') #2 D:\Webserver\intranet\gdata\index.php(25):
Zend_Gdata_Calendar->getCalendarFeed() #3 D:\Webserver\intranet\gdata\index.php(43):
outputCalendarByDateRange(Object(Zend_Http_Client), '2007-06-14', '2007-06-22',
'private-BLABLABLA...') #4 {main} thrown in D:\Webserver\intranet\gdata\library\Zend\Feed.php on
line 177 |
Erg vreemd toch, aangezien het bij mijn andere kalender prima werkt! Ik zie geen opties in Google Calendar om de XML te 'activeren' ofzo (dit hoefde bij m'n andere kalender ook niet)
Wat doe ik verkeerd?
Ziehier m'n script: (Zend is dus vereist)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| $D = DIRECTORY_SEPARATOR; set_include_path( dirname(__FILE__) . "{$D}library" . PATH_SEPARATOR . get_include_path()); require_once 'Zend/Loader.php'; Zend_Loader::loadClass('Zend_Gdata'); Zend_Loader::loadClass('Zend_Gdata_AuthSub'); Zend_Loader::loadClass('Zend_Gdata_ClientLogin'); Zend_Loader::loadClass('Zend_Gdata_Calendar'); Zend_Loader::loadClass('Zend_Feed_EntryAtom'); Zend_Loader::loadClass('Zend_Http_Client'); function outputCalendarByDateRange($client, $startDate, $endDate, $key) { $gdataCal = new Zend_Gdata_Calendar($client); $gdataCal->setUser('blablablalba@gmail.com'); $gdataCal->setVisibility($key); $gdataCal->setProjection('full'); $gdataCal->setOrderby('starttime'); $gdataCal->sortorder = "ascending"; $gdataCal->setStartMin($startDate); $gdataCal->setStartMax($endDate); $eventFeed = $gdataCal->getCalendarFeed(); foreach ($eventFeed as $event) echo("<li>".$event->title()."</ul>"); } // Calendar: smeerbartje //$startDate = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") , date("Y"))); //$endDate = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+8, date("Y"))); //$key = "private-blablablablaKEYVOORNORMALEKALENDERblabla"; //$client = new Zend_Http_Client(); //echo("<ul".outputCalendarByDateRange($client, $startDate, $endDate, $key)."</ul>"); // Calendar: gedeeld $startDate = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") , date("Y"))); $endDate = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+8, date("Y"))); $key = "private-blablablablaKETVOORTWEEDEKALENDERblablabla"; $client = new Zend_Http_Client(); echo("<ul".outputCalendarByDateRange($client, $startDate, $endDate, $key)."</ul>"); |
UPDATE
Ik heb zojuist een nieuwe key aangevraagd voor mijn goed-werkende kalender. De oude key gaf dezelfde foutmelding als mijn tweede kalender altijd geeft. Na aanvraag van een nieuwe key voor mijn eigen kalender werkt het script dus wel! Echt supervaag! Heb ik nu een bug in Google Calendar gevonden o.i.d.?
[ Voor 4% gewijzigd door smeerbartje op 14-06-2007 22:51 . Reden: Typo ]