[英]Google Calendar API Authorization asked all the time
我的問題很簡單,我正在將Google Calendar API與php腳本一起使用。
我的腳本可以正常工作,但是我無法使用cron運行它,因為我需要一直對我的應用進行授權。
有什么辦法可以做我想要的嗎?
這是我的代碼:
<?php
require_once 'google/Google_Client.php';
require_once 'google/contrib/Google_CalendarService.php';
session_start();
$client = new Google_Client();
$client->setApplicationName("Google Calendar PHP Starter Application");
$client->setClientId([MY APP ID]);
$client->setClientSecret([MY SECRET TOKEN]);
$client->setRedirectUri([MY REDIRECT URI]);
$client->setDeveloperKey([MY DEV KEY]);
$cal = new Google_CalendarService($client);
if (isset($_GET['logout'])) {
unset($_SESSION['token']);
}
/*
** Request token from API
*/
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}
if (isset($_SESSION['token'])) {
$client->setAccessToken($_SESSION['token']);
}
if ($client->getAccessToken()) {
// MY CODE GOES HERE
} else {
$authUrl = $client->createAuthUrl();
print "<a class='login' href='$authUrl'>Connect Me!</a>";
}
?>
謝謝 !
不知道您是否對此問題有任何答案,但是我曾經遇到過同樣的問題。 Google Api返回Oauth訪問令牌。 該令牌無限期地存在,但是在您的代碼中,您將其存儲在$ _SESSION變量中,該變量具有一定的保留時間。 嘗試使用$token = $client->getAccessToken();
為了將訪問令牌放入變量中,然后以其他某種形式存儲令牌,例如數據庫。 然后,當檢查$_SESSION['token']
是否設置時,如果沒有設置,則可以查詢數據庫以檢索令牌,並使用$client->setAccessToken($queryResult);
只要您擁有該訪問令牌,該API就會處理其余部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.