Ich erstelle eine Anwendung, mit der der Administrator den Zugriff auf ihr Analysekonto für die Offlineverwendung authentifizieren kann, und speichert das Aktualisierungstoken in der Datenbank.Wie kann ich ein aktualisiertes Zugriffstoken mithilfe gespeicherter Aktualisierungstoken erhalten?
Nun, wenn ich versuche, die API auf dem Frontend zu verwenden, gibt es die folgenden Fehler:
"Access Token Expired. There wan a general error : The OAuth 2.0 access token has expired, and a refresh token is not available. Refresh tokens are not returned for responses that were auto-approved."
Hier ist mein Code, der diesen Fehler erzeugt so weit:
require_once "lib/google/Google_Client.php";
require_once "lib/google/contrib/Google_AnalyticsService.php";
$_analytics = new analytics();
$_googleClient = new Google_Client();
$_googleClient->setClientId($_analytics->gaClientId);
$_googleClient->setClientSecret($_analytics->gaClientSecret);
$_googleClient->setRedirectUri($_analytics->gaRedirectUri);
$_googleClient->setScopes($_analytics->gaScope);
$_googleClient->setAccessType($_analytics->gaAccessType);
// Returns last access token from the database (this works)
$_tokenArray['access_token'] = $_analytics->dbAccessToken($_agencyId);
$_googleClient->setAccessToken(json_encode($_tokenArray));
if($_googleClient->isAccessTokenExpired()) {
// Don't think this is required for Analytics API V3
//$_googleClient->refreshToken($_analytics->dbRefreshToken($_agencyId));
echo 'Access Token Expired'; // Debug
}
if (!$_googleClient->getAccessToken()) {
echo '<h2>Error - Admin has not setup analytics correct yet</h2>';
}
Ich bin nach eine Funktion, um etwas wie setRefreshToken auszuführen - den Wert von der Datenbank eingeben, von dem Admin, der sie vorher online authentifiziert hat.
das ist es fixiert ist, und ich habe versucht, das Token mit dem Zugang t zu aktualisieren oken, anstatt das Refresh-Token als Parameter zu verwenden. #Fehler - Danke! – mattpark22
Kennen beide von Ihnen, wie ich ein Zugriffstoken zum Ablaufen zwingen kann, um mithilfe der Funktion zum Aktualisieren von Token ein neues Zugriffstoken zu erhalten? @mpark – Anagio
@Anagio Sie sollten '$ _googleClient-> refreshToken ($ NewAccessToken-> refresh_token);' ausführen, um ein neues Token zu erzwingen. Dann vergleichen Sie einfach das alte mit dem neuen Token, um zu sehen, ob es sich geändert hat. –