通过 PHP 重复 Google 幻灯片 API 'requests' 的功能

Function for repetitive Google Slides API 'requests' via PHP

我是 Google 使用 PHP 幻灯片 API 的新手。我正在编写一个脚本以通过我的脚本制作幻灯片。如果我在脚本中按顺序布置所有 'requests'(即 createSlide、createTable、insertText),......我能够在 Google 中制作幻灯片。但是,我想通过一个函数最小化所有的请求,却一直报错:

{ "error": { "code": 400, "message": "Invalid requests[1]: No request set.", "errors": [ { "message": "Invalid requests[1]: No request set.", "domain": "global", "reason": "badRequest" } ], "status": "INVALID_ARGUMENT" } } %s

我的测试示例代码:

function createNewSlide($requests,$slide_id) {
        $requests[] = new Google_Service_Slides_Request([
                'createSlide' => [
                'objectId' => $slide_id
                ]
        ]);
     return $requests;
   } 

$requests = [];
$slide_id = 'unique_slide_id_'.rand(1,9999999);
$requests[] = createNewSlide($requests,$slide_id);

///////////////////////////////////////////////////////
// Execute the request.
$batchUpdateRequest = new Google_Service_Slides_BatchUpdatePresentationRequest(array(
    'requests' => $requests
));
try {
  $response = $slidesService->presentations->batchUpdate($created_presentation->presentationId, $batchUpdateRequest);
    print("A new slide was added to the presentation<br>");
} catch (\Exception $e) {
    //print($e->getMessageAsString()." \n%s\n");
    print($e->getMessage()." \n%s\n");
}
//////////////////////////////////////////////////////////

接上注释,当你写$requests[] =时,意思是把结果加到一个数组中。然后你 return 结果数组。由于您只想 return google 对象,因此您不必将 $requests 传递给函数,只需 return 来自函数的 google 对象。

function createNewSlide($slide_id) {
    return new Google_Service_Slides_Request([
            'createSlide' => [
            'objectId' => $slide_id
            ]
    ]);
} 

然后您可以将函数中的 returns 添加到 $requests 数组。

$requests[] = createNewSlide($slide_id);