eng-mahmoud-elgml/google-integration

此软件包的最新版本(1.2.4)没有提供许可信息。

本软件包可简化与Google Drive和Google Sheets的集成。

1.2.4 2023-09-03 11:10 UTC

This package is auto-updated.

Last update: 2024-09-15 23:47:58 UTC


README

概述

这是一个用于帮助与Google服务集成的laravel软件包,主要包括两个服务。

  • Google Drive
  • Google Sheets

安装

使用CL安装
composer require eng-mahmoud-elgml/google-integration
运行 php artisan vendor:publish --provider="EngMahmoudElgml\GoogleIntegration\Providers\GoogleServiceProvide" --tag="config"

默认情况下,该软件包处理Google回调并返回访问令牌,但您可以覆盖它并使用自己的路由和回调函数。在回调函数中,您只需要从GoogleConnection类创建对象并使用handleCallback()方法,将$request['code']传递给它即可返回访问令牌。

现在,在Google开发者控制台中创建您的Google项目,获取OAuth2凭据,并将其作为json文件下载。从文件中获取值并将其设置在google配置文件或.env文件中。

此外,您将在config/google.php中找到一个名为token的数组,您将在使用Google账号登录后获得它,以获取Google登录链接。
您可以从GoogleConnection类创建对象并使用getAuthUrl方法获取链接。

登录后,如果软件包自行处理Google回调,您将在登录后直接获得访问令牌,复制其值并将其粘贴到config/google.php中的token数组内。

此外,如果您想将令牌保存在数据库中,您可以在创建任何GoogleFileSpreadSheet对象时,将令牌手动作为构造函数的第二个参数传递。现在您可以开始使用该软件包的功能了。

用法

1- Google Drive功能

要使用drive功能,您必须从GoogleFile类创建对象并将Google文件ID传递给构造函数,然后您可以
a- 复制它
使用$googleFileObject->copy()可以复制文件。如果您想以特定名称复制它,可以将名称传递给第一个参数,否则名称将是随机数字。如果您想将其放在特定文件夹中,可以将文件夹ID传递给第二个参数。
和如果要将它保存在特定文件夹中,可以将文件夹ID传递给第二个参数。
b- 导出它
使用$googleFileObject->export()可以导出文件内容,默认MIME类型为application/pdf。如果您想更改它,可以将MIME类型传递给第一个参数。但首先请查看:[Google支持MIME类型](https://developers.google.com/drive/api/guides/ref-export-formats)
如果您想直接将其保存到本地磁盘,可以将路径传递给第二个参数,将文件名传递给第三个参数。
c- 删除它
使用$googleFileObject->delete()可以删除文件。
d- 分享它
使用$googleFileObject->share($email,$role)可以将文件与特定电子邮件共享,您可以在第二个参数中传递角色,如readerwriterowner

2- Google Sheets功能

要使用Google Sheets功能,您必须从SpreadSheet类创建对象并将工作表ID传递给构造函数,然后您可以
a- 列出工作表文件中的工作表
使用 $spreadSheetObject->list() 可以获取工作簿文件中的所有工作表。
b- 获取工作表数据(读取工作表)
使用 $spreadSheetObject->read($sheetName) 可以获取工作簿文件中特定工作表的所有数据。可以通过传递范围作为第二个参数来获取特定范围的数据。
示例

$spreadSheetObject->read('Sheet1','A1:B2');

c- 更新单元格值
使用 $spreadSheetObject->updateCells($sheetName,$cellesWithItsValues) 可以更新工作簿文件中特定工作表的单元格值。
示例

$spreadSheetObject->updateCells('Sheet1',[
    'A1'=>'value1',
    'B1'=>'value2',
    'A2'=>'value3',
    'B2'=>'value4',
]);

d- 批量更新工作表
如果您想更新工作表中的所有单元格,可以使用 $spreadSheetObject->override($sheetName,$data) 并将工作表名称作为第一个参数,将数据作为第二个参数传递,数据应为数组数组的形式。主数组中的每个数组是工作表中的一行,每个内部的数组是该行中的一个单元格。示例

$spreadSheetObject->override('Sheet1',[
    ['value1','value2'],
    ['value3','value4'],
]);