Laravel 5, Socialite, und Google/Apiclient-Pakete.Laravel Socialite + Making API-Aufrufe nach dem Login
Quellcode: https://github.com/svpernova09/meatings
Ich habe Persönlichkeit des öffentlichen Lebens der Arbeit mit Google fein für die Anmeldung Benutzer in
Ich versuche, einen API-Aufruf in einer anderen Methode, um Kalenderereignisse zu holen, wie der angemeldete Benutzer. . Ich bleibe bei den Token, die ich benutzen soll.
Der Fehler Ich erhalte ist:
"Fehler": "invalid_grant",
"ERROR_DESCRIPTION": "Code wurde bereits eingelöst."
My Methode:
public function show($user_id)
{
$user = $this->user->find($user_id);
$client = new Google_Client();
$client->setClientId(env('GOOGLE_CLIENT_ID'));
$client->setClientSecret(env('GOOGLE_CLIENT_SECRET'));
$client->setRedirectUri(env('GOOGLE_CALLBACK_URL'));
$client->authenticate($user->code);
$service = new Google_Service_Calendar($client);
$calendarId = $user->calendar_id;
$optParams = array(
'maxResults' => 5,
'orderBy' => 'startTime',
'singleEvents' => TRUE,
'timeMin' => date('c'),
);
$results = $service->events->listEvents($calendarId, $optParams);
$events = [];
if (count($results->getItems()) > 0) {
foreach ($results->getItems() as $event) {
$events[] = $event;
}
}
return view('users.calendar')->with('events', $events);
}
Laravel Die Ausgabe ist:
Google_Auth_Exception in OAuth2.php Leitung 127: Fehler beim Abrufen OAuth2 Zugriffstoken, Meldung: 'invalid_grant'
$ user-code sieht wie folgt aus: 4/hfPzDrOHyaEv3asdfadsfasdfdfw2nXIl0rt2boUpGj7h M.Um5wPgCeasdfasdfafd1t6qxkmwI
Jede Anleitung wäre großartig. Ich komme nirgendwo mit den Google Guides.
An diesem Punkt sind Sie nicht bereits authentifiziert? Es besagt, dass der Code bereits eingelöst wurde und Sie bereits ein Zugriffs-Token haben. –
Ja, der Benutzer ist bereits authentifiziert, ich habe das Token, das Socialite zurückerhält, aber ich erhalte "ungültige Grant" -Fehler, wenn ich die nächste API-Anfrage (diese Methode) autorisieren möchte – joepferguson
@Joe Versuchen, das Token durch Widerruf des Zugriffs zu aktualisieren erneut authentifizieren. Möglicherweise müssen Sie auch einen anderen Bereich verwenden. Per Default verwendet Socialite nur ein paar Bereiche, ich glaube _profile_ und _email_. Sie müssen die Bereiche _calendar_ oder _calendar.readonly_ für die Google-API-Dokumente hinzufügen. – brokekidweb