1

ユーザーが新しいイベントを作成するために選択できるカレンダーのリストを表示しています。私は自分のアカウントでテストしていますが、カレンダーの 1 つが読み取り専用です。新しいイベントを作成しようとすると、論理的には読み取り専用であるというエラー メッセージが返されます。リストから読み取り専用カレンダーを除外するにはどうすればよいですか?

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' とメッセージ 'Expected response code 200, got 403 This feed is read-only'

これはカレンダー フィードです。

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

それはいっぱいで基本的ではないので、読み取り専用であるかどうかはわかりません:s

前もって感謝します!

4

1 に答える 1

0

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\>";

編集

さらに検索した後、役立つ可能性のあるいくつかのアクセスレベルの意味を見つけました。

none
現在のユーザーはカレンダーにアクセスできません。
read
現在のユーザーは、カレンダーへの読み取り専用アクセス権を持っています。
freebusy
現在のユーザーは予定の詳細ではなく、予定表の空き時間情報のみを表示できます。
editor
現在のユーザーは、カレンダーのアクセス制御設定を変更できないことを除いて、カレンダーへの完全な編集アクセス権を持っています。
所有者
現在のユーザーには、カレンダーへの完全な所有者アクセス権があります。
root
Google Apps ドメインでのみ使用できます。ユーザーはドメイン管理者であるため、アクセス制御の設定に関係なく、カレンダーへの完全な所有者アクセス権があります。

答えを見つけるのは簡単ではなかったので、これが他の誰かに役立つことを願っています。

于 2013-07-08T12:58:43.410 に答える