php Google Calendar исключает календари только для чтения из списка

Вопрос:

Я показываю список календарей, в которых пользователи могут выбирать, чтобы создавать новые события. Я тестирую свою учетную запись, и один из календарей доступен только для чтения, а затем, когда я пытаюсь создать в нем новое событие, логически, возвращается сообщение об ошибке, говорящее только для чтения. Как я могу исключить календари только для чтения из списка?

function getGoogleCalendars()
{
$html .= validateGoogleSession();
if($html == "")
{
$client = getAuthSubHttpClient();
$calendars = getCalendarList($client);

if(!empty($calendars))
{
$html .= "<h1>Select Calendars</h1><br\>";
$html .=  "<ul><br\>";
foreach ($calendars as $calendar)
{
//var_dump($calendar);
$html .=  "<li>" . $calendar->title->text ." <input type='checkbox' name='gcalendar' value='".$calendar->content->src."' /></li><br\>";
}
$html .= "</ul><br\>";
$html .= "<label>Alert: </label><input id='alert' type='checkbox' name='reminder[]' value='alert' />";
$html .= "<label>E-mail: </label><input id='email' type='checkbox' name='reminder[]' value='email' />";
$html .= "<label>Minutes before: </label><input id='minutes' type='input' name='minutes' value=15 />";
$html .= "<button class='add-event'>Add Event</button>";
}
}
return $html;
}

редактировать

Это ошибка, с которой я сталкиваюсь:

Неустранимая ошибка: исключить исключение «Zend_Gdata_App_HttpException» с сообщением «Ожидаемый код ответа 200, полученный 403 Этот канал доступен только для чтения»

и это календарный фид:

https://www.google.com/calendar/feeds/%23contacts%40group.v.calendar.google.com/private/full

Поскольку он полный, и он не базовый, может быть или не доступен только для чтения: s

Заранее спасибо!

Лучший ответ:

После большого поиска в google я думаю, что нашел решение, по крайней мере, работает в моем примере:

if($calendar->accesslevel->value != "read" && $calendar->accesslevel->value != "freebusy" && $calendar->accesslevel->value != "none")
    $html .=  "<li>" . $calendar->title->text ." <input type='checkbox' name='gcalendar' value='".$calendar->content->src."' /></li><br\>";

редактировать

После некоторого поиска я нашел смысл нескольких уровней доступа, которые могли бы быть полезными:

никто
Текущий пользователь не имеет доступа к календарю.
читать
У текущего пользователя есть доступ к календарю только для чтения.
FreeBusy
Текущий пользователь может видеть только информацию о занятости в календаре, а не информацию о событиях.
редактор
У текущего пользователя есть полный доступ к календарю, за исключением того, что они не могут изменять настройки контроля доступа к календарю.
владелец
Текущий пользователь имеет полный доступ владельца к календарю.
корень
Доступно только в доменах Google Apps. Пользователь является администратором домена и, следовательно, имеет полный доступ к календарю, независимо от настроек контроля доступа.

Надеюсь, это поможет кому-то другому, потому что найти ответ было непросто.

Оцените статью
TechArks.Ru
Добавить комментарий