ah, s'ok I've figured out what to do.
Changing default in $sessionid = '/calendar/feeds/default/private/
full'; to the name given to me in calendar settings does the job.
Maybe that was obvious...
Nik
On May 28, 8:37 pm, nik <[EMAIL PROTECTED]> wrote:
> I'm stuck trying to figure out how to access the calendars other than
> my default one - this seems such a fundamental thing that I'm sure I'm
> going to be told to RTFM or search the group a bit harder, but
> honestly I have looked hard...
>
> I'm using the http/xml to access my calendar (can't use zend or java
> for various reasons), and so far I've been able to log in, add and
> delete events from my calendar.
>
> I then created a second private calendar, but I'm not sure at which
> point I need to differentiate between the calendars...
>
> Here's my functions that I've been using so far;
>
> function login() {
> global $sessionid, $auth;
> $req =
> "Email=".urlencode("[EMAIL PROTECTED]")."&Passwd=XXXX&source=Company-
> myApp-1&service=cl";
>
> $header = "POSThttps://www.google.com/accounts/ClientLoginHTTP/1.0\r
> \n";
> $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
> $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
> $fp = fsockopen ('www.google.com', 80, $errno, $errstr, 30);
> $cont = "";
> if (!$fp) {
> echo "$errstr ($errno)";
> fwrite($log, "Failed to open HTTP connection!");
> $res = "FAILED";
> }
> else {
> fputs ($fp, $header . $req);
> while (!feof($fp)) {
> $cont .= fgets ($fp, 1024);
> }
> }
>
> $pos = strpos($cont, "Auth=");
> $auth = substr($cont, $pos+5);
>
> }
>
> function DeleteEvent($link) {
> global $sessionid, $auth;
> $pos = strpos($sessionid, "gsessionid");
> $ses = substr($sessionid, $pos+11);
> $l = substr($link, 21)."?gsessionid=$ses";
> $header = "DELETE $l HTTP/1.0\r\n";
> $header .= "Content-Type: application/atom+xml\r\n";
> $header .= "Content-Length: 0\r\n";
> $header .= "Authorization: GoogleLogin auth=$auth\r\n\r\n";
> $fp = fsockopen ('www.google.com', 80, $errno, $errstr, 30);
> $content = "";
> if (!$fp) {
> echo "$errstr ($errno)";
> fwrite($log, "Failed to open HTTP connection!");
> $res = "FAILED delete event";
> }
> else {
> fputs ($fp, $header);
> while (!feof($fp)) {
> $content .= fgets ($fp, 1024);
> }
> fclose($fp);
> }
>
> }
>
> function AddEvent($start, $end, $title, $details) {
> global $sessionid, $auth;
> $title = htmlentities($title);
> $details = htmlentities($detail);
> $req = "<entry xmlns='http://www.w3.org/2005/Atom'xmlns:gd='http://
> schemas.google.com/g/2005'>
> <category scheme='http://schemas.google.com/g/2005#kind'
> term='http://schemas.google.com/g/2005#event'></category>
> <title type='text'>$title</title>
> <content type='text'>$details</content>
> <author>
> <name>nik</name>
> <email>[EMAIL PROTECTED]</email>
> </author>
> <gd:transparency value='http://schemas.google.com/g/
> 2005#event.opaque'></gd:transparency>
> <gd:eventStatus value='http://schemas.google.com/g/
> 2005#event.confirmed'></gd:eventStatus>
> <gd:where valueString='not set'></gd:where>
> <gd:when startTime='$start"."T12:00:00.000Z'
> endTime='$end"."T13:00:00.000Z'></gd:when>
> </entry>
> ";
>
> $header = "POST $sessionid HTTP/1.0\r\n";
>
> $header .= "Content-Type: application/atom+xml\r\n";
> $header .= "Content-Length: " . (strlen($req)+1) . "\r\n";
> $header .= "Authorization: GoogleLogin auth=$auth\r\n\r\n";
> $fp = fsockopen ('www.google.com', 80, $errno, $errstr, 30);
> $content = "";
> if (!$fp) {
> echo "$errstr ($errno)";
> fwrite($log, "Failed to open HTTP connection!");
> $res = "FAILED";
> }
> else {
> fputs ($fp, $header . $req);
> while (!feof($fp)) {
> $content .= fgets ($fp, 1024);
> }
> fclose($fp);
> }
> if (strpos($content, "gsessionid")) {
> $t = preg_match('/<a href=\"([^\"]*)\">(.*)<\/a>/iU',
> $content,
> $matches);
> $sessionid = substr($matches[1], 21);
> }
>
> }
>
> $auth = "";
> $sessionid = '/calendar/feeds/default/private/full';
>
> login();
> // do once to get gsessionid
> AddEvent(0,0,0,0,0);
> $pos = strpos($sessionid, "gsessionid");
> $ses = substr($sessionid, $pos+11);
> $header = "GET /calendar/feeds/moi%40gmail.com/private/full?gsessionid=
> $ses&max-results=1000 HTTP/1.0\r\n";
> $header .= "Content-Type: text/html; charset=UTF-8\r\n";
> $header .= "Authorization: GoogleLogin auth=$auth";
> $header .= "Host:www.google.com\r\n";
> $header .= "Connection: Close\r\n\r\n";
> $fp = fsockopen ('www.google.com', 80, $errno, $errstr, 30);
> $content = "";
> if (!$fp) {
> echo "$errstr ($errno) failed";}
>
> else {
> fputs ($fp, $header);
> while (!feof($fp)) {
> $content .= fgets ($fp, 1024);
> }}
>
> fclose($fp);
>
> >From then on, using the above $content I check which events need
>
> adding or deleting against my local database
>
> All works fine with the default database, but how do I do the same
> with extra calendars that I add?
>
> Nik
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Calendar Data API" 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-calendar-help-dataapi?hl=en
-~----------~----~----~----~------~----~------~--~---