nuieip / google-api-client-helper
Google API 客户端助手 - 使用 PHP 轻松访问 Google API
Requires
- php: >=5.4
- google/apiclient: ^2.0
README
Google API 客户端助手
Google API 客户端助手 - 使用 PHP 轻松访问 Google API
特性
-
简单开发和管理 Google API 应用程序的方式
-
支持服务 SDK 文档
-
每个服务的简单使用
此助手基于google-api-php-client 和 google-api-php-client-services。
概要
演示
$client = \nueip\google\apiHelper\Client::setClient() ->setApplicationName('Google API') ->setAuthConfig('/path/google_api_secret.json') ->setRedirectUri("http://{$_SERVER['HTTP_HOST']}" . dirname($_SERVER['PHP_SELF']) ->setAccessToken($accessToken) ->getClient(); if ($accessToken = ClientHelper::refreshAccessToken()) { // saveAccessToken($accessToken) } // People Service uses Google_Client from Client helper above $contacts = \nueip\google\apiHelper\services\People::getSimpleContacts();
要求
此库需要以下内容
- PHP 5.4.0+
- google/apiclient 2.0+
安装
在您的项目中运行 Composer
composer require nueip/google-apiclient-helper
然后您可以在 Composer 加载后根据您的 PHP 框架调用它
require __DIR__ . '/vendor/autoload.php'; use nueip\google\apiHelper\Client;
GOOGLE 客户端
配置
有许多方法可以通过助手设置 Google_Client
配置数组方法
配置键引用 Google_Client
的方法。例如,authConfig
引用 Google_Client->setAuthConfig()
。
$client = \nueip\google\apiHelper\Client::setClient([ 'applicationName' => 'Google API', 'authConfig' => '/path/google_api_secret.json', 'redirectUri' => "http://{$_SERVER['HTTP_HOST']}" . dirname($_SERVER['PHP_SELF'], ]) ->getClient();
配置链式方法
方法引用与 Google_Client
相同的方法名称。例如,setAuthConfig()
引用 Google_Client->setAuthConfig()
。
$client = \nueip\google\apiHelper\Client::setClient() ->setApplicationName('Google API') ->setAuthConfig('/path/google_api_secret.json') ->setRedirectUri("http://{$_SERVER['HTTP_HOST']}" . dirname($_SERVER['PHP_SELF']) ->getClient();
封装方法
$client = new Google_Client(); $client->setAuthConfig('/path/google_api_secret.json'); \nueip\google\apiHelper\Client::setClient($client);
将 Google_Client 封装到助手后,助手将共享相同的 Google_Client 对象。
访问令牌使用
refreshAccessToken()
简单方式获取刷新的访问令牌或跳过过期的访问令牌
public static array|false refreshAccessToken()
示例
$client = \nueip\google\apiHelper\Client::setClient() ->setApplicationName('Google API') ->setAuthConfig('/path/google_api_secret.json') ->setRedirectUri("http://{$_SERVER['HTTP_HOST']}" . dirname($_SERVER['PHP_SELF']) ->setAccessToken($accessToken) ->getClient(); // Simple way to get refreshed access token or false expired to skip if ($accessToken = ClientHelper::refreshAccessToken()) { // saveAccessToken($accessToken) }
助手处理设置
setAccessType('offline')
&setApprovalPrompt('force')
以刷新令牌。
verifyAccessToken()
验证 access_token。此方法将通过 Google API 验证当前 access_token,如果未提供,则将使用当前 access_token。
public static array|false verifyAccessToken(string $accessToken=null)
verifyScopes()
通过 access_token 验证 tokenInfo 的作用域。此方法将通过 Google API 验证当前 access_token,如果未提供,则将使用当前 access_token。
public static array|false verifyScopes(array $scopes, string $accessToken=null)
示例
$result = \nueip\google\apiHelper\Client::verifyScopes([ 'https://www.googleapis.com/auth/userinfo.profile', ]);
实现
还有更多实现,例如 addScope()
或 createAuthUrl()
用于 OAuth 注册,您可以在以下示例代码中参考
GOOGLE 服务
您可以直接使用来自 nueip\google\apiHelper\Client
的任何使用 Google_Client
的服务助手
use \nueip\google\apiHelper\services\People as PeopleHelper; \nueip\google\apiHelper\Client::setClient([...]) $contacts = PeopleHelper::getSimpleContacts();
或者您可以为每个服务助手重置一个 Google_Client
use \nueip\google\apiHelper\services\People as PeopleHelper; PeopleHelper::setClient($googleClient); // PeopleHelper::method()...
使用 getService()
获取当前 Google 服务对象以进行高级使用
$service = \nueip\google\apiHelper\services\People::getService(); // $service->people_connections->...
人物
API 文档:https://developers.google.com/people/api/rest/
人物助手具有智能调用,引用了 Google_Service_PeopleService_Person 方法,它提供了对 setValue()
的简单接口。
// Simple setValue() example \nueip\google\apiHelper\services\People::newPerson ->setEmailAddresses('myintaer@gmail.com') ->setPhoneNumbers('+886') ->setBiographies("I'm a note");
属性
通过助手设置人物的属性非常简单,它提供了三种输入数据类型
1. 原始对象
通过原始 Google 属性类输入,不太方便。
$gPhoneNumber = new Google_Service_PeopleService_PhoneNumber; $gPhoneNumber->setValue('+886'); \nueip\google\apiHelper\services\People::setPhoneNumbers($gPhoneNumber);
2. 数组
通过数组类型输入将映射到 API 键值设置。
\nueip\google\apiHelper\services\People::setPhoneNumbers(['value' => '+886']);
3. 字符串
通过字符串类型输入将启用助手属性处理器,它将自动为所有属性设置值。
\nueip\google\apiHelper\services\People::setPhoneNumbers('+886');
getSimpleContacts()
使用解析器获取简单的联系人数据
public static array getContacts()
示例
// Get formated list by Helper $contacts = \nueip\google\apiHelper\services\People::getSimpleContacts();
结果
Array ( [0] => Array ( [id] => people/c26081557840316580 [name] => Mr.Nick [email] => [phone] => 0912 345 678 ) ...
这是一个简单的字段解析器,如果您需要所有字段,可以使用
listPeopleConnections()
。
createContact()
创建联系人
public static Google_Service_PeopleService_Person createContact()
示例
$person = \nueip\google\apiHelper\services\People::newPerson() ->setNames('Nick') ->setEmailAddresses('myintaer@gmail.com') ->setPhoneNumbers('+886') ->createContact();
资源名称:
$person->resourceName
或$person['resourceName']
。
updateContact()
更新联系人
public static Google_Service_PeopleService_PeopleEmpty updateContact(array $optParams=null)
示例
$person = \nueip\google\apiHelper\services\People::findByResource($resourceName) ->setNames('Nick') ->setEmailAddresses('myintaer@gmail.com') ->setPhoneNumbers('+886') ->updateContact();
deleteContact
删除联系人
public static Google_Service_PeopleService_PeopleEmpty deleteContact(string $resourceName=null, array $optParams=[])
示例
$person = \nueip\google\apiHelper\services\People::deleteContact($resourceName);
您还可以使用查找模式
$person = \nueip\google\apiHelper\services\People::findByResource($resourceName) ->deleteContact();
异常
包括客户端和服务的所有Google异常
try {} catch (\Google_Exception $e) {}
否则,仅适用于Google服务
try {} catch (\Google_Service_Exception $e) {}