tguruslan/yii2-google-apiclient

官方Google API 2 PHP Client的Yii2包装器

安装: 2

依赖: 0

建议者: 0

安全: 0

星星: 2

关注者: 1

分支: 3

开放问题: 0

类型:yii2-extension

1.2.2 2022-10-13 05:14 UTC

This package is auto-updated.

Last update: 2024-09-13 09:18:42 UTC


README

官方Google API PHP Client的Yii2包装器。

Latest Stable Version Latest Unstable Version License Total Downloads

此扩展包括

  • 一个控制台实用程序,用于生成您的凭证文件
  • 一个组件,负责身份验证,并为您提供对服务的访问权限

安装

首选的安装方法是通过 PackagistComposer。运行以下命令安装包并将其添加到项目的 composer.json

composer require tguruslan/yii2-google-apiclient

配置

凭证文件

为了使用此扩展,您需要一个Google应用程序的凭证文件。

您可以使用提供的控制台实用程序生成此文件

  • config/console.php 中配置模块
'bootstrap' => ['log', 'yii2gac'],
'modules' => [
    'yii2gac' => [
        'class' => 'tguruslan\yii2\google\apiclient\Module',
    ],
],
  • 使用 /configure 子命令
./yii yii2gac/configure <clientSecretPath> [api] # replace [api] with api sections separated by comma, for example: admin,groupssettings
  • 如果API有多个版本,请输入版本或按Enter键
  • 如果需要选择所需的版本号,请输入以下任一变体
  • 当需要输入所需的范围时,请粘贴完整的范围URL,并用逗号分隔

其中 clientSecretPath 是您从 Google Console 获得的秘密JSON文件的路径,api 是API标识符(如果未提供,则会被提示)。

组件

您可以在Yii配置数组的 components 索引中添加条目,以便在应用程序中使用任意数量的Google_Service实例。

以下是如何设置GMail的示例,下面提供了一个使用示例。

    'components' => [
        // ..
        'google' => [
            'class' => 'tguruslan\yii2\google\apiclient\components\GoogleApiClient',
            'credentialsPath' => '@runtime/google-apiclient/auth.json',
            'clientSecretPath' => '@runtime/google-apiclient/secret.json',
        ],

这将使您能够在应用程序中访问GMail认证服务 Yii::$app->google->getService()

示例用法

在GMail中显示您最新的邮件主题

$gmail = new \Google_Service_Gmail(Yii::$app->google->getService());

$messages = $gmail->users_messages->listUsersMessages('me', [
    'maxResults' => 1,
    'labelIds' => 'INBOX',
]);
$list = $messages->getMessages();


if (count($list) == 0) {
    echo "You have no emails in your INBOX .. how did you achieve that ??";
} else {
    $messageId = $list[0]->getId(); // Grab first Message

    $message = $gmail->users_messages->get('me', $messageId, ['format' => 'full']);

    $messagePayload = $message->getPayload();
    $headers = $messagePayload->getHeaders();

    echo "Your last email subject is: ";
    foreach ($headers as $header) {
        if ($header->name == 'Subject') {
            echo "<b>" . $header->value . "</b>";
        }
    }

}