Drive SDK 的开发人员 - 或者通常是 OAuth2.0 PHP 客户端库!
在 apiClient.php 中有一个setAccessToken
函数:
public function setAccessToken($accessToken) {
if ($accessToken == null || 'null' == $accessToken) {
$accessToken = null;
}
self::$auth->setAccessToken($accessToken);
}
这个函数的@param 是这样的:
{"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer",
"expires_in":3600, "id_token":"TOKEN", "created":1320790426}
如果访问令牌只是此 JSON 编码字符串的一部分,为什么要将此参数命名为 $accessToken ?
我认为这非常具有误导性。
当我们更深入地查看:$auth->setAccessToken($accessToken);
在 apiOAuth2.php 中,我们看到:
public function setAccessToken($accessToken) {
$accessToken = json_decode($accessToken, true);
if ($accessToken == null) {
throw new apiAuthException('Could not json decode the access token');
}
if (! isset($accessToken['access_token'])) {
throw new apiAuthException("Invalid token format");
}
$this->accessToken = $accessToken;
}
看看第二个if : $accessToken['access_token']
。这有什么意义?accessToken 中的访问令牌 ?? :)
您应该将$accessToken
这些函数的参数(整个 JSON 字符串)命名为其他名称$credentials
或其他名称,因为它有点模糊......但如果我错了,请告诉我。