ncsuwebdev / gclient
支持Laravel 5.6+的Google API客户端包装器
Requires
- php: ^5.6|^7.0|^8.0
- ext-json: *
- google/apiclient: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.14
- mockery/mockery: ^1.0@dev
- orchestra/testbench: ^3.4
- phpunit/phpunit: 8.0.4
README
ncsuwebdev/gclient
包允许您更轻松地将Google API集成到Laravel应用程序中。该包最初的重点是帮助开发需要与组织的G Suite域更紧密集成的应用程序,以提供域管理和支持。然而,此包也可以用于其他Google API。
此包受到Google API Client Wrapper包的启发。
要求
- PHP ^5.6|^7.0|^8.0
- Laravel >5.6
安装
您可以通过composer安装此包
composer require ncsuwebdev/gclient
包将自动注册自身。
配置
要使API凭证与Google API正常工作,需要进行许多步骤。
设置凭证文件存储
Google API将提供一些json文件,用于存储凭证。这些文件应存储在您的web服务目录空间之外。我们建议在项目的根目录中创建一个名为googleapi
的新目录。您可以将其命名为任何您喜欢的名称,但请确保在配置文件中正确引用它。
在Google开发者控制台创建项目
访问Google开发者控制台以创建一个具有自己的API凭证的新项目。
-
指定项目所需的API作用域。请注意选定的API,以确保您可以将它们添加到配置文件中。
-
设置应用程序类型为“其他”的OAuth 2.0客户端ID。设置完成后,下载client_secrets.json文件并将其保存到
googleapi
目录。
域广泛委派
如果您正在使用G Suite域并且需要域广泛委派,您需要在开发者控制台中设置和配置服务帐户以及相关用户。下载提供的oauth2service.json
文件并将其保存到googleapi
目录。
您还需要在G Suite管理员控制台中授权服务帐户客户端ID的API作用域列表。查看wiki以获取默认列表以开始。
初始化配置变量
您可以选择运行
php artisan vendor:publish --provider="NCSU\GClient\GoogleClientServiceProvider" --tag="config"
将默认配置值发布到您的应用程序中。如果您希望更改任何Google API作用域,则需要发布一个配置文件。
您需要在.env文件中配置以下配置值
- GOOGLE_APP_NAME
- GOOGLE_CLIENT_ID
- GOOGLE_CLIENT_SECRET
- GOOGLE_SERVICE_ACCOUNT_NAME
- GOOGLE_SERVICE_ACCOUNT_JSON
- GOOGLE_CUSTOMER_ID
- GOOGLE_DOMAIN_NAME
- GOOGLE_SECRETS_FROM_BASE_PATH
- GOOGLE_CREDENTIALS_PATH
- GOOGLE_TOKEN_PATH
多域名
如果您需要处理多个域名,但不想不断更改.env或凭证文件,您可以在.env文件中将GOOGLE_ENV
设置为字符串,该字符串将作为您配置变量的前缀。
例如,如果您将GOOGLE_ENV='TESTING'
,则配置文件将搜索前缀为TESTING_
的必要变量,例如TESTING_GOOGLE_CLIENT_ID
。
授权
要授权您的应用程序与Google API通信,请运行以下命令:
php artisan gclient:authorize
按照提示,使用您在开发者控制台中使用的Google账号授权API访问。
如果您在授权后更改了任何API权限,应该运行
php artisan gclient:authorize --reauth
以获取具有正确权限的新令牌。