On Fri, Oct 17, 2008 at 4:45 AM, Jose Ignacio Naranjo
<[EMAIL PROTECTED]> wrote:
>
> On Oct 17, 8:12 am, "Ray Baxter" <[EMAIL PROTECTED]> wrote:
>> In your code below, try printing out the values of
>> e.GetEditLink().href, e.GetEditLink().href[pos+1:], etc.
>>
>> What do you get?
>
> I get:
>
> 1. e.GetEditLink().href:
> DEBUG    2008-10-17 11:32:24,401 gcalendar.py]
> http://www.google.com/calendar/feeds/default/allcalendars/full/1m8davn11fvthp9mnin4458fl0%40group.calendar.google.com
>
> 2. e,GetEditLink().href[pos+1:]
> DEBUG    2008-10-17 11:32:24,402 gcalendar.py]
> 1m8davn11fvthp9mnin4458fl0%40group.calendar.google.com
>
> Looking at this forum, I found a post telling that the Id is only the
> second thing I get (mmmm... could exist a method to get it whitout
> playing with the string)
> This is the id of the calendar, isn't it? (I tried with href too...
> and got another InvalidURLError: ApplicationError: 1)
>
> By the way, and way less important... when searching an specific
> calendar, I iterate through the main feed of an user calendars,
> matching the title. Is there any other 'faster' way?? Anyway, I think
> the best solution is storing the id of a calendar in your model. To
> avoid these extra requests.
>
>>
>> Ray
>
> Thank you Ray!
>
> Regards,
> Jse Ignacio
>
>>
>> On Thu, Oct 16, 2008 at 9:40 AM, Jose Ignacio Naranjo
>>
>> <[EMAIL PROTECTED]> wrote:
>> > This raise the exception InvalidURLError: ApplicationError: 1, caused
>> > by an invalid protocol, so I changed the url param to 'http://
>> > google.com/calendar/feeds/' + id_cal + '/private/full'.
>>
>> > But with this url, when creating the event, it is raised a Method 405
>> > exception, telling that it is not allowed to POST over this resource
>> > (gdata POSTs to create the events of course!!!...).
>>
>> > I have thought that the problem could be the 'id_cal' I have got,
>> > which could be wrong. This is the way I got the id of a calendar,
>> > please, tell me if you think this is not a good way.
>>
>> >    feed = self.gcal.GetAllCalendarsFeed()
>>
>> >    for e in feed.entry:
>> >      if e.title.text == 'gbeep_calendar':
>> >        pos = e.GetEditLink().href.rfind('/')
>> >        return e.GetEditLink().href[pos+1:]
>>
>> > Thank you for you help.
>>
>> > Regards,
>> > Jose Ignacio.
>>

First off, please don't try to tokenize URLs and extract things at
specific locations. This is a recipe to have things break later on
should we change where resources are mapped.

The /allcalendars feed exposes the feed URL for an individual calendar
as a link element taking the following form:

    <link rel="alternate" type="application/atom+xml" href="...">

Use the contents of that href attribute as your URL.

When using the Python client library, you can retrieve this by calling
e.GetAlternateLink().href. Since this is the complete feed URL for the
corresponding calendar, you won't need to do any string manipulation.

-- 
Trevor Johns

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to