refreshToken 之后还需要setAccessToken 吗? - Google API PHP

Is setAccessToken necessary after refreshToken? - Google API PHP

这是我的代码:

$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),但是 none 我已经看到然后再次使用 setAccessToken。逻辑表明这是必要的,而且它有效,但我想要一个明确的答案并更好地理解这一点。

(注意,Laravel 语法用于 setting/retriving 会话数据)

阅读 PHP API 代码应该可以回答您的问题。请参阅 the code

如果您查看 getAccessToken 代码,它只是 returns "token" 已经存在。 public 函数 getAccessToken() { return $this->token; } 因此,执行 setAccessToken 来设置使用 getAccessToken 接收的令牌没有多大意义。 在refreshToken设置时间内(见代码),如果有none.

,它会更新accessToken