这是我的代码:
$client = new Google_Client();
$client->setApplicationName("dayPlanner");
$client->setClientId(env('googleClientID'));
$client->setClientSecret(env('googleClientSecret'));
$client->setAccessToken(session('token'));
if($client->isAccessTokenExpired()) {
$client->refreshToken($user->refreshToken);
$token = $client->getAccessToken();
session(['token' => $token]);
$client->setAccessToken($token); // necessary..?
}
这有效,但我不完全理解。大多数在线示例都显示了refreshToken(以及会话数据的getAccessToken),但是我没有看过,然后再次使用setAccessToken。逻辑规定这是必要的,它是有效的,但我想要一个明确的答案,并更好地理解这一点。
(注意,用于设置/恢复会话数据的Laravel语法)
答案 0 :(得分:1)
阅读PHP API代码应该回答您的问题。请参阅the code
如果查看getAccessToken代码,它只返回已存在的“token”。 公共函数getAccessToken() { 返回$ this->令牌; } 因此,使用setAccessToken设置使用getAccessToken接收的令牌没有多大意义。 在refreshToken设置时间内(参见代码),如果没有,则会更新accessToken。