¿Cómo enviar una solicitud multiparte / mixta para la solicitud por lotes de indexación de Google en NodeJs?

Estoy usando Nodejs para conectarme conGoogleApis v35.0.0 para decirle a Google que actualice o elimine páginas del índice de Google. Y me atasqué en la solicitud multiparte / mixta, el cuerpo de multiparte cuando envié la solicitud a través de Solicitud por lotes de indexación de Google.

Podría enviar una solicitud de actualización de página individual a Google siguiendo laindexing API documentación. Pero dado que Google tiene una cuota limitada de un máximo de 200 solicitudes por día y necesito actualizar más URL que eso. Por lo tanto, estoy tratando de usar la solicitud por lotes de indexación de Google que puede agrupar un máximo de 100 solicitudes individuales y cuenta como 1 solicitud.

Tengo problemas con el formato correcto del cuerpo multiparte cuando intento enviar la solicitud por lotes. Estoy usando JWT (JSON Web Token) de GoogleApis que se extendió desde oauth2 para autenticar mi cuenta y usandorequest library v2.88.0 para enviar la solicitud a Google.

a que la biblioteca de solicitudes ya maneja el límite multiparte, es por eso que no la envío como una de las opciones de información. También verifico la información en el multiparte / mixto de la biblioteca de solicitud npm pero solo encontré el similar pero no el mismo que es el multiparte / relacionado https: //github.com/request/request#multipartrelate).

Según el ejemplo del cuerpo de solicitud de lote de Google, Necesito usar multipart / mixed como tipo de contenido en la solicitud principal:

POST /batch HTTP/1.1
Host: indexing.googleapis.com
Content-Length: content_length
Content-Type: multipart/mixed; boundary="===============7330845974216740156=="
Authorization: Bearer oauth2_token

--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+2>

POST /v3/urlNotifications:publish [1]
Content-Type: application/json
accept: application/json
content-length: 58

{ "url": "http://example.com/jobs/42", "type": "URL_UPDATED" }

Aquí está mi código:

    return jwtClient.authorize(function(err, tokens) {
      if (err) {
        console.log(err);
        return;
      }

      let options = {
        url: 'https://indexing.googleapis.com/batch',
        method: 'POST',
        headers: {
          'Content-Type': 'multipart/mixed'
        },
        auth: { 'bearer': tokens.access_token },
        multipart: [
          {
            body: JSON.stringify({
              headers: {
                'Content-Type': 'application/http'
              },
              method: 'POST',
              url: 'https://indexing.googleapis.com/v3/urlNotifications:publish',
              body: {
                'Content-Type': 'application/json',
                url: 'https://www.test.com/es/1234',
                type: 'URL_UPDATED'
              }
            })
          }
        ]
      };

      request(options, function (error, response, body) {
        console.log(body);
      });

    });

Recibo un error en el cuerpo de multiparte, no sé qué tipo de cuerpo está esperando la solicitud por lotes de indexación de Google. Parece que todo dentro del cuerpo de multiparte se considera como encabezados. Pero de acuerdo con la documentación del formato de solicitud por lotes, dice que "Cada parte comienza con su propio Tipo de contenido: encabezado HTTP de aplicación / http. El cuerpo de cada parte es en sí una solicitud HTTP completa, con su propio verbo, URL, encabezados y cuerpo ". Para obtener más información, consulte:https: //cloud.google.com/storage/docs/json_api/v1/how-tos/batc.

Sin embargo, recibo el siguiente error cuando ejecuto mi código:

{
  "error": {
    "code": 400,
    "message": "Failed to parse batch request, error: Failed in parsing HTTP headers: {\"Content-Type\":\"application/http\",\"method\":\"POST\",\"url\":\"https://indexing.googleapis.com/v3/urlNotifications:publish\",\"body\":{\"Content-Type\":\"application/json\",\"url\":\"https://www.test.com/es/1234\",\"type\":\"URL_UPDATED\"}}\n. Received batch body: ",
    "status": "INVALID_ARGUMENT"
  }
}

¿Alguien sabe cuál es el formato correcto del cuerpo dentro de la multiparte cuando solicita la solicitud por lotes de indexación de Google?

¡Gracias de antemano!

Respuestas a la pregunta(2)

Su respuesta a la pregunta