【问题标题】:Setting spreadsheet title with Guzzle in PHP在 PHP 中使用 Guzzle 设置电子表格标题
【发布时间】:2020-05-12 04:43:36
【问题描述】:

我已连接到我的 Google 表格,当我运行 https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/create 的发布请求并且未设置任何属性时,它会创建一个新的电子表格。

我很想添加一个标题,所以我这样做了

$options = [
    'form_params' => [
        'properties' => [
            'title' => 'A new title'
        ]
    ]
];
$client->post('v4/spreadsheets', $options);

我正在使用 Guzzle 进行此调用。作为回应,我在添加title 以形成参数时收到HTTP status code 400 (Bad Request)

我该如何解决这个问题?

【问题讨论】:

    标签: php google-api guzzle guzzle6


    【解决方案1】:

    您确实应该为此使用 Google 的 SDK,因为他们已经支持 PHP 中的 SDK。

    根据他们的文档,工作表属性设置在 Google_Service_Sheets_SpreadsheetProperties 实例中,该实例采用 title 属性。

    他们的文档中的example

    <?php
    $spreadsheet = new Google_Service_Sheets_Spreadsheet([
        'properties' => [
            'title' => $title
        ]
    ]);
    $spreadsheet = $service->spreadsheets->create($spreadsheet, [
        'fields' => 'spreadsheetId'
    ]);
    printf("Spreadsheet ID: %s\n", $spreadsheet->spreadsheetId);
    

    【讨论】:

    • 这里的挑战是我正在使用 ReactPHP。我可以通过setHttpClient 设置一个guzzle 客户端,但是我必须将每个getpost 调用替换为getAsyncpostAsync。我该怎么做?这就是我目前不使用 SDK 的原因。
    • 我不明白 ReactPHP 如何阻止您使用 SDK,但如果您坚持自己编写整个 HTTP 请求,您将不得不深入研究所有文档才能准确了解API 的预期。显然,这不是。就我个人而言,我只会使用 SDK 而不会让自己头疼。
    • 它不会阻止我使用 SDK,但我想进行异步调用。 SDK 只进行同步调用。
    猜你喜欢
    • 2019-10-07
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    相关资源
    最近更新 更多