Hello Kyle,
I am also having problems here and I do not seem to bew able to get
the AccessLevel from the URL of the calendar. Here is the story:
1. A different Goog calendar user creates a calendar and shares it
with me so I am an editor
2. The user makes available to me both URLs; the private and public
address
3. I authenticate via the API and and do this:
myService = new CalendarService("AccessLevelCalendar");
myService.setUserCredentials(username, password);
new
CalendarFeed().declareExtensions(myService.getExtensionProfile());
calFeed = myService.getFeed(url, CalendarEventFeed.class);
In the case that I use the Public address the service throws a
ResourceNotFoundException. In the case that I use the Private address
then get getCanPost() returns false. However, if I login to the
service using an Internet Browser and use either the public of private
address the calendar is added correctly with the correct AccessLevel.
How can I get the access level from the same URLs via the API?
Any hint would be very much appreciated.
Jose
On Apr 1, 6:19 pm, "Kyle Marvin" <[EMAIL PROTECTED]> wrote:
> Hi Brett,
>
> Try this: Build the feed URL for the calendar of interest and use the
> CalendarService.getFeed() to retrieve it. Then use the BaseFeed.getCanPost()
> API [1] to check to see if it's possible to post new entries to it with the
> same authentication context as was used to retrieve the feed.
>
> Cheers!
>
> -- Kyle
>
> [1]
> -http://code.google.com/apis/gdata/javadoc/com/google/gdata/data/BaseF...()
>
> On 4/1/07, brettmoreton2111 <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
> > thanks ryan, i was using the wrong URL...
>
> > Is there a way to find the access level of another persons calendar.
> > For example, i have created a web application which allows you to add
> > events into other peoples calendars. The user decides which calendar
> > to add into by choosing an option from a drop down menu. The drop down
> > menu is populated with all the people who this user has access to. The
> > application finds the email address associated with the chosen
> > calendar, and this is how events are added into it:
>
> > URL feedUrl =
> > new URL("http://www.google.com/calendar/
> > feeds/"+selectedCalendarEmailAddress+"/private/full");
>
> > //Code to construct an event and insert it etc...
>
> > So imagine Luke Jones gives me read-only permission to his calendar.
> > How can I check my access level to his calendar before I try adding an
> > event into it?
>
> > thanks
>
> > Brett
>
> > On Apr 1, 11:25 pm, "Ryan Boyd (Google)" <[EMAIL PROTECTED]> wrote:
> > > Hi Brett,
>
> > > Well - that was just an example. If you already used the entry
> > > variable name, you could use something else. In this case, 'entry'
> > > should represent a CalendarEntry from the calendar meta-feed (notice
> > > the example method retrieves /calendar/feeds/default rather than
> > > something like /calendar/feeds/default/private/full).
>
> > > Have you taken a look at the full method posted? This retrieves the
> > > meta feed and looks through each calendar and prints out the title and
> > > access level.
>
> > > Cheers,
>
> > > -Ryan
>
> > > On Apr 1, 3:02 pm, "brettmoreton2111" <[EMAIL PROTECTED]>
> > > wrote:
>
> > > > Hi Ryan thanks for your reply, however i'm still having some problems:
>
> > > > entry.getTitle().getPlainText()); is returning the title of the last
> > > > event inserted
> > > > entry.getAccessLevel().getValue()); is causing a NullPointerException
>
> > > > does the entry.getAccessLevel refer to the calendar or an individual
> > > > entry within the calendar?
>
> > > > i'm creating a web application using AuthSub login, if that makes any
> > > > difference?
>
> > > > thanks
>
> > > > On Apr 1, 7:59 pm, "Ryan Boyd (Google)" <[EMAIL PROTECTED]> wrote:
>
> > > > > BTW-- to access this information in the Java Client lib, you can do:
> > > > > entry.getAccessLevel().getValue())
>
> > > > > Here's a modified version of the sample/calendar/
> > > > > CalendarClient::printUserCalendars method that outputs the
> > accesslevel
> > > > > as well.
>
> > > > > /**
> > > > > * Prints a list of all the user's calendars.
> > > > > *
> > > > > * @param service An authenticated CalendarService object.
> > > > > * @throws Exception If an error occurs during feed retrieval.
> > > > > */
> > > > > private static void printUserCalendars(CalendarService service)
> > > > > throws Exception {
> > > > > URL feedUrl = new URL("http://www.google.com/calendar/feeds/
> > > > > default");
>
> > > > > new
> > > > > CalendarFeed().declareExtensions(service.getExtensionProfile());
>
> > > > > // Send the request and receive the response:
> > > > > CalendarFeed resultFeed = service.getFeed(feedUrl,
> > > > > CalendarFeed.class);
>
> > > > > System.out.println("Your calendars:");
> > > > > System.out.println();
> > > > > for (int i = 0; i < resultFeed.getEntries().size(); i++) {
> > > > > CalendarEntry entry = resultFeed.getEntries().get(i);
> > > > > System.out.println("\t" + entry.getTitle().getPlainText());
> > > > > System.out.println("\t" + entry.getAccessLevel().getValue());
> > > > > }
> > > > > System.out.println();
> > > > > }
>
> > > > > Cheers,
>
> > > > > -Ryan
>
> > > > > On Apr 1, 11:50 am, "Ryan Boyd (Google)" <[EMAIL PROTECTED]>
> > wrote:
>
> > > > > > Yes, there is a <gCal:accesslevel...> element in the calendar
> > meta-
> > > > > > feed (when authenticated):
> >http://www.google.com/calendar/feeds/default
>
> > > > > > The documentation on gCal::accesslevel is at:
> >http://code.google.com/apis/calendar/reference.html#gcal_reference
>
> > > > > > Note, there is also an additional access level which is called
> > > > > > 'root'. This is held by a domain admin of Google Apps for all
> > > > > > calendars on their domain. It has the same privileges as
> > 'manager'.
> > > > > > Also, note, 'contributor' should be 'editor'. These bugs have
> > been
> > > > > > filed against our documentation.
>
> > > > > > Cheers,
>
> > > > > > -Ryan
>
> > > > > > On Apr 1, 9:23 am, "[EMAIL PROTECTED]" <
> > [EMAIL PROTECTED]>
> > > > > > wrote:
>
> > > > > > > is there an API call which will allow me to check the permission
> > I
> > > > > > > have on a certain calendar?
>
> > > > > > > I want to know if a calendar is read-only before i try and
> > insert an
> > > > > > > event into it, via the API.
>
> > > > > > > Thanks- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---