在YouTube api上运行1个小时后,我已经面临了两天的0auth问题,被屏蔽了两天。 401凭证错误。
php artisan route:clear
php artisan config:cache
php artisan cache:clear
php artisan view clear
}
我的测试代码的结果显示,提供刷新令牌后,访问令牌完全没有变化,即使到期时间也没有减少'expires_in'
所以这就是为什么一小时后我会遇到信用错误的原因...我不知道我的代码有什么问题,请帮助我,这是获得访问代码后我的测试代码的结果,因此您可以看到“ '访问令牌与上一个令牌相似,我也已经尝试在setAccessToken()和fetchAccessTokenWithRefreshToken()的参数上使用encode_json。没有收到错误,但结果仍然相同...
阵列([的access_token] => ya29.GlvQBuGBfZDQn3E8HWd4wfSbb0hLHsYVGzPBE0boJuB4ien5pcsOGqXlkEyOU7mevDLOGOWbuakTyTiAUVf2bkxNwZXX [expires_in] => 3600 [refresh_token] => 1 / KEgjy2t9kTNwCXk-ZtMTSzPSS2xl4XX [范围] => https://www.googleapis.com/auth/youtube [token_type] =>承载[创建] => 1552891085)
阵列([的access_token] => ya29.GlvQBuGBfZDQn3E8HWd4wfSbb0hLHsYVGzPBE0boJuB4ien5pcsOGqXlkEyOU7mevDLOGOWbuakTyTiAUVf2bkxNwZXX [expires_in] => 3600 [refresh_token] => 1 / KEgjy2t9kTNwCXk-ZtMTSzPSS2xl4XX [范围] => https://www.googleapis.com/auth/youtube [token_type] =>承载[创建] => 1552891085)
谢谢
答案 0 :(得分:0)
访问令牌在一小时后过期,这是它们的工作方式。访问令牌过期后,您应该运行代码并获取新的访问令牌。在新的访问令牌过期之前获取该访问令牌将产生相同的访问令牌。
您的访问令牌是在创建时创建的(提示epoch converter)加上3600(秒)来确定令牌何时到期。
1552891085 <--- Monday, March 18, 2019 6:38:05 AM
我唯一看到的代码错误是您正在获取访问令牌,但并未实际使用它Oauth2Authentication.php
function getOauth2Client() {
try {
$client = buildClient();
// Set the refresh token on the client.
if (isset($_SESSION['refresh_token']) && $_SESSION['refresh_token']) {
$client->refreshToken($_SESSION['refresh_token']);
}
// If the user has already authorized this app then get an access token
// else redirect to ask the user to authorize access to Google Analytics.
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
// Set the access token on the client.
$client->setAccessToken($_SESSION['access_token']);
// Refresh the access token if it's expired.
if ($client->isAccessTokenExpired()) {
$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
$client->setAccessToken($client->getAccessToken());
$_SESSION['access_token'] = $client->getAccessToken();
}
return $client;
} else {
// We do not have access request access.
header('Location: ' . filter_var( $client->getRedirectUri(), FILTER_SANITIZE_URL));
}
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
}
}