【问题标题】:Google Sheet to Laravel 8 IntegrationGoogle Sheet 到 Laravel 8 的集成
【发布时间】:2023-02-07 04:50:52
【问题描述】:

我要整合带有 Laravel 8 的谷歌表无需任何第三方工具或连接器。我知道这对很多人来说很简单,但我无法通过。非常感谢您的努力和回答!

【问题讨论】:

    标签: laravel google-sheets laravel-8


    【解决方案1】:

    要求:

    • Google OAuth 密钥。
    • Google 服务帐户。
    • 启用 Google Drive API 和 Google Sheets API。
    • revolution/laravel-google-sheetsLaravel 包。
    脚步:
    第 1 步:安装 revolution/laravel-google-sheets 包
    composer require revolution/laravel-google-sheets
    
    # publish package files
    php artisan vendor:publish --provider="PulkitJalanGoogleGoogleServiceProvider" --tag="config"
    
    第 2 步:设置 Google API OAuth 密钥
    • 导航至Google Developers Console
    • 创建一个 Google 项目或选择已经存在的项目。
    • 点击创建凭据其次是OAuth 客户端 ID.
    • 如有必要,配置同意屏幕.
    • 设置类型为Web应用程序.
    • 复制 client_id 和 client_secret 并在 .env 中设置:
    GOOGLE_CLIENT_ID=XXXXXX-XXXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com
    GOOGLE_CLIENT_SECRET=XXXXXX-XXXXXXXXXXX-XXXXXXXXXXXXXXXX
    
    第 3 步:设置 Google 服务帐户
    • 导航至Google Developers Console

    • 从凭据创建一个新的服务帐户密钥。

    • 为您的服务帐户命名。

    • 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
    
    第 4 步:设置要集成的 Google 电子表格
    SPREADSHEET_ID=1kjtQBxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxx
    
    • 复制电子邮件最近创建的服务帐号,看到这个image

    • 分享床单与服务帐号电子邮件为编辑,看到这个image

    第 5 步:启用所需的 Google API
    第 6 步:测试它
    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);
    
    

    有关更多示例,请参阅包文档。

    【讨论】:

      【解决方案2】:
      { "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 配置文件

      【讨论】:

        【解决方案3】:

        非常感谢你分享这个!!

        我想在我的 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]);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-12-21
          • 2021-05-29
          • 2023-01-22
          • 1970-01-01
          • 2021-08-23
          • 1970-01-01
          • 2021-11-26
          相关资源
          最近更新 更多