我有一个问题可能对大多数Laravel开发人员有用。我想允许用户连接到以下一个或多个API:
到目前为止,我已经使用Laravel Socialite,它与许多社交帐户之间有着清晰的联系。我的问题是,通过Socialite,我只有一个google驱动程序,而我需要通过不同的按钮访问不同的Google API。
我的.env数据,连接到config / services.php是:
GOOGLE_CLIENT_ID=1.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=XXX
GOOGLE_CALLBACK_URL=https://mysite/google/login_callback
GOOGLE_CALENDAR_CLIENT_ID=2.apps.googleusercontent.com
GOOGLE_CALENDAR_CLIENT_SECRET=YYY
GOOGLE_CALENDAR_CALLBACK_URL=https://mysite/google/calendar_callback
GOOGLE_DRIVE_CLIENT_ID=3.apps.googleusercontent.com
GOOGLE_DRIVE_CLIENT_SECRET=WWW
GOOGLE_DRIVE_CALLBACK_URL=https://mysite/google/drive_callback
现在,我很清楚如何通过不同的按钮来管理多个API。这里有一些选项:
因此,主要要点是:Laravel中的多个Google API需要使用唯一的API凭据,并且在Controller级别,我要使用范围寻址到相关代码,或者我必须为每个API创建单独的API凭据,并创建相关的.env键和分别管理。
我希望不要太模糊。谢谢!
使用社交名流包,您只能进行身份验证。如果您正在开发日历和云端硬盘,则建议使用google client library
$client = new \Google_Client();
$client->setAccessToken($accessToken);
$client->setSubject($email);
$clien->addScope(['{scopes}']);
$client->authorize();
$client->get('https://www.googleapis.com/calendar/v3/calendars/' . $calendar_id . '/events');
也请参阅此文档:Event apisDrive Apis