【发布时间】:2017-09-29 17:01:18
【问题描述】:
在过去的几天里,我浪费了很多美好的时光 现在我设法获得了刷新令牌..我之前无法获得刷新令牌..
我的目的是在没有谷歌用户登录的情况下同步谷歌日历数据
我做了什么:
- 我将令牌信息存储在我的数据库中
- 当用户想要同步时,我使用存储的信息从 Google 日历 API 中提取数据 但是令牌有过期日期,即一个小时
- 我假设我可以使用刷新令牌获取可用令牌并再次从 Google 日历 api 中提取数据(但如何?)
额外问题:我可以从之前的刷新令牌中获得另一个刷新令牌吗?是不是我可以一遍又一遍地获得刷新令牌?
这是我的一些代码:
public function __construct()
{
$client = new Google_Client();
$client->setAuthConfig('client_secret.json');
$client->addScope(Google_Service_Calendar::CALENDAR); // CALENDAR READONLY 는 읽기만 가능
$guzzleClient = new \GuzzleHttp\Client(array('curl' => array(CURLOPT_SSL_VERIFYPEER => false)));
$client->setHttpClient($guzzleClient);
$client->setAccessType ("offline");
$client->setApprovalPrompt ("force");
$client->setRedirectUri('http://localhost/smart_mirror/GoogleCalendarApi-master/public/api/cal');
$this->client = $client;
}
$refresh_token=$this->client->fetchAccessTokenWithRefreshToken($this->client->getRefreshToken());
$this->client->getAuth()->refreshToken($this->client->getAuth()->getRefreshToken());
$refresh_token=$this->client->getAccessToken();
【问题讨论】:
标签: oauth-2.0 google-calendar-api