Календарь Google Как исправить "У вас должен быть доступ для писателей к этому календарю"? - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь получить доступ к своему фиктивному календарю и написать его, чтобы создать новые функциональные возможности веб-сайта, но что-то мешает мне внести изменения в фиктивный календарь.

Пока я пытаюсь использовать этот код:

$event = $calendar->calendars->get(xxxxxx.com_dsjiub0krm61i5vu1mvee8rh9o@group.calendar.google.com);Результат аналогичен исследованию API Календаря Google.

API моего календаря

$calendarId2 = 'xxxxxx.com_dsjiub0krm61i5vu1mvee8rh9o@group.calendar.google.com';

        $jobname = "Tesla";
        $joblocation = "USA";
        $jobdescription = "Interview with Elon Musk.";
        $startofjob = "2019-03-29T10:00:00.000+00:00";
        $endofjob = "2019-03-30T18:00:00.000+00:00";

        try {
            $client = GetGoogleClient();
            $calendar = new \Google_Service_Calendar($client);

            $event = new \Google_Service_Calendar_Event(array(
                'summary' => $jobname,
                'location' => $joblocation,
                'description' => $jobdescription,
                'end' => array(
                    'dateTime' => $endofjob,
                    'timeZone' => 'Asia/Manila',
                ),
                'start' => array(
                    'dateTime' => $startofjob,
                    'timeZone' => 'Asia/Manila',
                ),
            ));

            $event = $calendar->events->insert($calendarId2, $event);
        }
        catch(\Exception $e) {
            return ["error" => $e->getMessage()];
        }

В сообщении всегда будет указано:календарь."даже если я поделился календарем с учетной записью службы с разрешения Make changes to events или Make changes and manage sharing

Дополнительная информация

function GetGoogleClient(){
    $client = new Google_Client();
    //$client->setAuthConfig($credentialsFile);
    $client->addScope("https://www.googleapis.com/auth/drive", Google_Service_Sheets::SPREADSHEETS);
    $client->addScope("https://www.googleapis.com/auth/calendar");
    //$client->addScope("https://www.googleapis.com/auth/calendar.events"); //same error result event with or without
    $client->setAuthConfig(CONST_GOOGLE_SERVICE_ACCOUNT_KEY);
    $client->setSubject(CONST_GOOGLE_SERVICE_ACCOUNT_EMAIL);
    $client->useApplicationDefaultCredentials();
    return $client;
}

1 Ответ

0 голосов
/ 28 марта 2019

"У вас должен быть доступ писателя к этому календарю."

Возможно, вы предоставили доступ к учетной записи службы, но предоставили ли вы ей право записи? или просто доступ для чтения? Я думаю, вы должны дважды проверить это, как правило, причина проблемы. Помните, что это только даст ему доступ к этому одному календарю.

enter image description here

Кроме того, я думаю, что вы должны проверить свои области просто используйте

$client->addScope("https://www.googleapis.com/auth/calendar");

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

...