10 messages in com.googlegroups.google-calendar-help-dataapiRe: is this a read-only feed?
FromSent OnAttachments
luke...@googlemail.com01 Apr 2007 09:23 
Ryan Boyd (Google)01 Apr 2007 11:50 
Ryan Boyd (Google)01 Apr 2007 11:59 
brettmoreton211101 Apr 2007 15:01 
brettmoreton211101 Apr 2007 15:02 
Ryan Boyd (Google)01 Apr 2007 15:25 
brettmoreton211101 Apr 2007 16:46 
Kyle Marvin01 Apr 2007 18:19 
metr...@hotmail.com17 Apr 2007 12:03 
metr...@hotmail.com17 Apr 2007 12:24 
Subject:Re: is this a read-only feed?
From:metr...@hotmail.com (metr@hotmail.com)
Date:04/17/2007 12:03:49 PM
List:com.googlegroups.google-calendar-help-dataapi

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" <kmar@google.com> 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 <bret@googlemail.com> 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)" <api.@google.com> 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" <bret@googlemail.com> 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)" <api.@google.com> 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)" <api.@google.com>

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, "luke@googlemail.com" < luke@googlemail.com> 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 -