Laravel 5,Socialite和google/apiclient包。Laravel Socialite +登錄後進行API調用
的源代碼:https://github.com/svpernova09/meatings
我有社交名媛與谷歌工作的罰款,在登錄用戶
我試圖在不同的方法調用API來獲取日曆事件登錄的用戶。 。我陷入了使用什麼標記的地方。
我得到的錯誤是:
「錯誤」: 「invalid_grant」,
「ERROR_DESCRIPTION」: 「代碼已經被贖回。」
我的方法:
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輸出是:
Google_Auth_Exception在OAuth2.php線127: 錯誤獲取的OAuth2訪問令牌,消息: 'invalid_grant'
$用戶代碼如下所示:4/hfPzDrOHyaEv3asdfadsfasdfDw72nXIl0rt2boUpGj7h M.Um5wPgCeasdfasdfafd1t6qxkmwI
任何指導都會很棒。我沒有得到谷歌指南的任何地方。
在這一點上,你不是已經認證?它說代碼已經被兌換了,並且你已經有一個訪問令牌。 –
是的,用戶已經過身份驗證,我有Socialite取回的令牌,但當我嘗試驗證下一個API請求(此方法)時,我收到'無效授權'錯誤 – joepferguson
@Joe嘗試通過撤銷訪問來刷新令牌並重新認證。您可能還必須使用不同的範圍。默認情況下,社交網站只使用一些範圍,我相信_profile_和_email_。您必須爲每個Google API文檔添加_calendar_或_calendar.readonly_作用域。 – brokekidweb