У меня работает oauth2 - когда пользователь входит в мое приложение, он должен войти в свою учетную запись Google.Затем они могут вручную синхронизировать все события из календаря моего веб-сайта с их Календарем Google.
НО, как я могу сделать так, чтобы мой сервер мог изменять свои события Календаря Google (добавлять, редактировать, удалять)без их фактического присутствия на компьютере?Потому что сейчас он использует $_SESSION
, чтобы проверить, вошел ли пользователь в свою учетную запись Google.
Например, вот как вставить / добавить событие через API в Календарь Google:
$client = new Google_Client();
$client->setAuthConfig('client_secrets.json');
$client->addScope(Google_Service_Calendar::CALENDAR);
$client->setAccessType("offline");
$service = new Google_Service_Calendar($client);
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
$event = new Google_Service_Calendar_Event(array(
'summary' => 'Google I/O 2015',
'location' => '800 Howard St., San Francisco, CA 94103',
'description' => 'A chance to hear more about Google\'s developer products.',
'start' => array(
'dateTime' => '2015-05-28T09:00:00-07:00',
'timeZone' => 'America/Los_Angeles',
),
'end' => array(
'dateTime' => '2015-05-28T17:00:00-07:00',
'timeZone' => 'America/Los_Angeles',
),
));
$event = $service->events->insert('primary', $event);
} else {
$redirect_uri = '/oauth.php';
header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
exit();
}
Но, как вы можете видеть, для этого требуется access_token, который хранится в $_SESSION
, и если токена доступа нет, он перенаправит их для входа в свою учетную запись Google.
Как можномой сервер зайти в свою учетную запись Календаря Google в background и добавить / изменить / удалить события?