Verstehen des Problems
Bei der Verwendung der Google Analytics-API können Fehler auftreten wenn Sie versuchen, auf Daten von mehreren Google-Konten zuzugreifen. Dieses Problem tritt auf, weil Zugriffstokens nach einer Stunde ablaufen. Das Aktualisieren des Tokens mit $client->refreshToken() sollte das Problem beheben, in einigen Fällen kann es jedoch zu einem „invalid_grant“-Fehler kommen.
Lösung
Um das Token korrekt zu aktualisieren, müssen Sie Folgendes verstehen:
Code-Implementierung
Der beigefügte Code zeigt eine Lösung für die Verwaltung des Token-Ablaufs:
// Retrieve the original token. $originalToken = json_decode($token); // Calculate token expiration time. $now = time(); $expirationTime = $originalToken->created + 3600; // Check if token is expired. if ($now > $expirationTime) { // If expired, use the refresh token from the original token to obtain a new temporary token. $client->refreshToken($originalToken->refresh_token); $newToken = $client->getAccessToken(); $tokenQuery = "UPDATE token SET token='$newToken' WHERE type='refresh'"; mysqli_query($cxn, $tokenQuery); $token = $newToken; } else { // If the original token hasn't expired, set the token as the original token. $client->setAccessToken($token); }
Dieser Code ruft das Original ab Token, berechnet seine Ablaufzeit und prüft, ob es abgelaufen ist. Wenn dies der Fall ist, aktualisiert es das Token mithilfe des Aktualisierungstokens und aktualisiert die Datenbank. Wenn das ursprüngliche Token nicht abgelaufen ist, wird das Zugriffstoken des Clients als ursprüngliches Token festgelegt.
Das obige ist der detaillierte Inhalt vonWie können Google API-Clientzugriffstoken effizient aktualisiert werden, um „invalid_grant'-Fehler zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!