Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

341
Vistas
¿Cómo podemos insertar múltiples textos y párrafos en google docs usando google docs api con php?

Quiero insertar más textos en Google Docs con múltiples contenidos de párrafo y también quiero diseñarlos. También seguí este enlace https://developers.google.com/docs/api/reference/rest/v1/documents/request pero no puedo lograrlo.

 $requests [] = new Google_Service_Docs_Request( [ 'insertText' => [ 'text' => 'Sample1\n', 'location' => [ 'index' => 1 ] ] ], [ 'insertText' => [ 'text' => 'sample2\n', 'location' => [ 'index' => 9 ] ] ], [ 'updateParagraphStyle' => [ 'range' => [ 'startIndex' => 1, 'endIndex' => 8 ], 'paragraphStyle' => [ 'namedStyleType' => 'HEADING_1' ], 'fields' => 'namedStyleType' ] ], [ 'updateParagraphStyle' => [ 'range' => [ 'startIndex' => 9, 'endIndex' => 17 ], 'paragraphStyle' => [ 'namedStyleType' => 'NORMAL_TEXT' ], 'fields' => 'namedStyleType' ] ], [ 'updateTextStyle' => [ 'range' => [ 'startIndex' => 9, 'endIndex' => 16 ], 'textStyle' => [ 'link' => [ 'url' => 'https://www.google.com' ] ], 'fields' => 'link' ] ] ); $batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array( 'requests' => $requests )); $response = $service->documents->batchUpdate($documentId, $batchUpdateRequest);

Lo estoy haciendo de esta manera y obtengo este error.

 PHP Fatal error: Uncaught Google\Service\Exception: { "error": { "code": 400, "message": "Invalid requests[0]: No request set.", "errors": [ { "message": "Invalid requests[0]: No request set.", "domain": "global", "reason": "badRequest" } ], "status": "INVALID_ARGUMENT" } }

Puede alguien ayudarme con esto. Sería de gran ayuda y lo necesito en código PHP.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Sample1\n de 'text' => 'Sample1\n', se convierte en Sample1\\n . Pensé que esta podría ser la razón de su problema. En este caso, ¿qué tal la siguiente modificación usando PHP_EOL ?

PHP_EOL : el símbolo correcto de 'Fin de línea' para esta plataforma.

Guión modificado:

 $requests = [ new Google_Service_Docs_Request([ 'insertText' => [ 'text' => 'Sample1' . PHP_EOL, // Modified 'location' => [ 'index' => 1 ] ] ]), new Google_Service_Docs_Request([ 'insertText' => [ 'text' => 'Sample2' . PHP_EOL, // Modified 'location' => [ 'index' => 9 // Modified ] ] ]) ];

o bien, encierre el texto entre comillas dobles de la siguiente manera.

 $requests = [ new Google_Service_Docs_Request([ 'insertText' => [ 'text' => "Sample1\n", // Modified 'location' => [ 'index' => 1 ] ] ]), new Google_Service_Docs_Request([ 'insertText' => [ 'text' => "Sample2\n", // Modified 'location' => [ 'index' => 9 // Modified ] ] ]) ];
  • Mediante esta modificación, 'Sample1' . PHP_EOL y "Sample1\n" se utilizan como Sample\n . Por esto, pensé que su objetivo se puede lograr.
  • En este caso, el index de la segunda solicitud es 9 que ha utilizado en el primer script.

Referencias:

  • Constantes predefinidas para PHP

  • comillas simples

    Para especificar una comilla simple literal, escápela con una barra invertida (). Para especificar una barra invertida literal, duplíquela (\). Todas las demás instancias de barra invertida se tratarán como una barra invertida literal: esto significa que las otras secuencias de escape a las que podría estar acostumbrado, como \r o \n, se mostrarán literalmente como se especifica en lugar de tener un significado especial.

  • comillas dobles

    Si la cadena está entre comillas dobles ("), PHP interpretará las siguientes secuencias de escape para caracteres especiales:

over 4 years ago · Santiago Trujillo Denunciar

0

Creo que el error se debe a la construcción de la solicitud por lotes. La matriz de solicitud debe contener una cantidad de instancias de Google_Service_Docs_Request .

Prueba a cambiar esto:

 $requests [] = new Google_Service_Docs_Request( [ 'insertText' => [ 'text' => 'Sample1\n', 'location' => [ 'index' => 1 ] ] ], [ 'insertText' => [ 'text' => 'sample2\n', 'location' => [ 'index' => 9 ] ] ],

A esto:

 $requests = [ new Google_Service_Docs_Request([ 'insertText' => [ 'text' => 'Sample1\n', 'location' => [ 'index' => 1 ] ] ]), new Google_Service_Docs_Request([ 'insertText' => [ 'text' => 'sample2\n', 'location' => [ 'index' => 9 ] ]) ];

Y después proceder de la siguiente manera:

 $batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(['requests' => $requests]); $result = $service->documents->batchUpdate($documentId, $batchUpdateRequest);

Documentación:

  • Biblioteca de cliente de la API de PHP Google Docs
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda