Laravel Google登录,日历和云端硬盘多个API集成

问题描述 投票:0回答:1

我有一个问题可能对大多数Laravel开发人员有用。我想允许用户连接到以下一个或多个API:

  • Google登录
  • Google日历
  • Google云端硬盘

到目前为止,我已经使用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。这里有一些选项:

  1. 从Google控制台云使用社交名流和唯一凭据入口点(google_login),并在Controller的回调函数中,区分不同的情况(登录,日历,驱动器...)
  2. 我为每个API的API部分创建了一个不同的Google凭据,我仅将Socialite用于登录,并且为日历,云端硬盘等创建/下载了单独的软件包...

因此,主要要点是:Laravel中的多个Google API需要使用唯一的API凭据,并且在Controller级别,我要使用范围寻址到相关代码,或者我必须为每个API创建单独的API凭据,并创建相关的.env键和分别管理。

我希望不要太模糊。谢谢!

laravel google-api google-drive-api google-calendar-api google-login
1个回答
0
投票

使用社交名流包,您只能进行身份验证。如果您正在开发日历和云端硬盘,则建议使用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

© www.soinside.com 2019 - 2024. All rights reserved.