【发布时间】:2023-02-07 04:50:52
【问题描述】:
我要整合带有 Laravel 8 的谷歌表无需任何第三方工具或连接器。我知道这对很多人来说很简单,但我无法通过。非常感谢您的努力和回答!
【问题讨论】:
标签: laravel google-sheets laravel-8
我要整合带有 Laravel 8 的谷歌表无需任何第三方工具或连接器。我知道这对很多人来说很简单,但我无法通过。非常感谢您的努力和回答!
【问题讨论】:
标签: laravel google-sheets laravel-8
revolution/laravel-google-sheetsLaravel 包。
composer require revolution/laravel-google-sheets
# publish package files
php artisan vendor:publish --provider="PulkitJalanGoogleGoogleServiceProvider" --tag="config"
GOOGLE_CLIENT_ID=XXXXXX-XXXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=XXXXXX-XXXXXXXXXXX-XXXXXXXXXXXXXXXX
从凭据创建一个新的服务帐户密钥。
为您的服务帐户命名。
在Grant this service account access to project步骤下点击选择角色下拉并选择项目从左侧和编辑从右侧如图所示image
点击继续然后完毕.
编辑服务帐户并转到密钥选项卡。
创建一个新的 Key 类型JSON,并将 json 文件复制到您的项目存储目录并将其重命名为 credentials.json - 或您喜欢的任何其他名称。
将 credentials.json 文件路径添加到 .env 如下
GOOGLE_SERVICE_ENABLED=true
GOOGLE_SERVICE_ACCOUNT_JSON_LOCATION=/home/user/code/project/storage/credentials.json
创建/打开 Google 电子表格文件。
为工作表命名
从文件 URL 中复制文档的 ID(例如https://docs.gogle.com/spreadsheets/d/{{SPREADSHEET_ID}}),参见image
将您在上一步中复制的文档 ID 设置为 .env
SPREADSHEET_ID=1kjtQBxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Google Drive API 和使能够它。Google Sheets API 和使能够它。
use RevolutionGoogleSheetsFacadesSheets;
// Add new sheet to the configured google spreadsheet
Sheets::spreadsheet(config('sheets.spreadsheet_id'))->addSheet('sheetTitle');
$rows = [
['1', '2', '3'],
['4', '5', '6'],
['7', '8', '9'],
];
// Append multiple rows at once
Sheets::sheet('sheetTitle')->append($rows);
有关更多示例,请参阅包文档。
【讨论】:
{ "error": { "code": 403, "message": "The request is missing a valid API key.", "errors": [ { "message": "The request is missing a valid API key.", "domain": "global", "reason": "forbidden" } ], "status": "PERMISSION_DENIED" } }
不要忘记添加范围!
[GoogleServiceSheets::DRIVE, GoogleServiceSheets::SPREADSHEETS]
到 google.php 配置文件
【讨论】:
非常感谢你分享这个!!
我想在我的 laravel 项目中使用它,但不知何故附加数据不会写在同一列中
这是我在控制器中的内容,
$data = [
'id' => $projectFinancial->id,
'pf_no' => $projectFinancial->pf_no,
'school_part' => $projectFinancial->school_part,
'total_cost' => $projectFinancial->total_cost,
'total_school_part' => $projectFinancial->total_school_part,
'updated_at' => now()->toDateTimeString(),
];
Sheets::spreadsheet(config('sheets.financial_spreadsheet_id'))->sheet('Sheet1')->append([$data]);
【讨论】: