Я использую v3 php google calendar api.
После того, как владелец календаря разрешает, я сохраняю access_token с токеном обновления в базе данных.
Когда страница календаря отображается кем-либо, у меня есть этот маленький код, который работает
$client = new apiClient(); $client->setApplicationName("My Calendar"); $client->setAccessType('offline'); $client->setAccessToken( $_SESSION['google']['access_token'] ); $calService = new apiCalendarService($client); $optParams = array('timeMin' => $gstart, 'timeMax'=> $gend); $events = $calService->events->listEvents($_SESSION['google']['google_cal_id'], $optParams);
Я видел в документе, что в какой-то момент мне, возможно, придется использовать токен обновления (который у меня есть в базе данных). Я не знаю, как использовать этот токен и когда. Будет ли setAccessToken бросить исключение в какой-то момент? Каков наилучший способ проверить это? Спасибо.
Маркер обновления используется, если вы хотите сохранить аутентификацию активной без повторной проверки подлинности пользователя. Например, у нас есть инструмент отчетности, использующий google analytics api. Мне нужно запускать запросы на него каждые 10 минут, поэтому, как только пользователь аутентифицирует наше приложение, я использую токен обновления, чтобы мои автоматические запросы могли запускаться даже тогда, когда пользователь не вошел в систему. В основном токен обновления используется для сохранения сеанса без взаимодействия с пользователем. Я надеюсь, что в этом есть смысл.
Маркер доступа истекает через 3600 или один час. Но вы можете использовать токен обновления, чтобы получить новый токен доступа без повторной аутентификации пользователя.
Подробнее о том, как получить токен обновления с помощью php, проверьте принятый ответ в этом сообщении: Автоматически обновлять токен с помощью google drive api с php-скриптом
Если вы используете REST API вместо PHP SDK, он в основном отправляет токен обновления, client_id, секретный на https://accounts.google.com/o/oauth2/token, как описано в нижней части страницы здесь
Обновить токен НЕ истекает, если пользователь не отменит его, или вы его программно отозвали.