Como enviar solicitação multipart / mista para solicitação de lote de indexação do Google em NodeJs?

Estou usando o Nodejs para me conectar comGoogleApis v35.0.0 para pedir ao Google para atualizar ou remover páginas do índice do Google. E fiquei preso na solicitação multipart / mista, o corpo da multipart quando envio a solicitação através de Solicitação de lote de indexação do Google.

Posso enviar uma solicitação de atualização de página individual ao Google seguindo asocumentação da API de indexação. Mas como o Google tem uma cota limitada no máximo de 200 solicitações por dia e preciso atualizar mais URLs do que isso. Portanto, estou tentando usar a solicitação em lote de indexação do Google, que pode agrupar no máximo 100 solicitações individuais e conta como 1 solicitaçã

Estou tendo problemas com o formato correto do corpo de várias partes ao tentar enviar a solicitação por lote. Estou usando o JWT (JSON Web Token) do GoogleApis, que foi estendido do oauth2 para autenticar minha conta e usando oiblioteca @request v2.88.0 para enviar a solicitação ao Google.

Desde que a biblioteca de solicitações já lida com o limite de várias partes, é por isso que não estou enviando isso como uma das informações das opções de solicitação. Também verifico as informações no multipart / misto da biblioteca npm de solicitação, mas só encontrei um similar, mas não o mesmo, que é o multipart / related https: //github.com/request/request#multipartrelate).

De acordo com o exemplo do corpo da solicitação de lote deGoogl, Preciso usar multipart / misto como tipo de conteúdo na solicitação 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" }

Aqui está o meu 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);
      });

    });

Estou recebendo erro no corpo de várias partes, não sei qual tipo de solicitação de lote de indexação do corpo do google está aguardando. Parece que tudo no corpo do multipart está considerando cabeçalhos. Mas, de acordo com a documentação, o formato da solicitação em lote, diz que "Cada parte começa com seu próprio tipo de conteúdo: cabeçalho HTTP aplicativo / http. O corpo de cada parte é uma solicitação HTTP completa, com seu próprio verbo, URL, cabeçalhos e corpo ". Para mais informações, consulte:https: //cloud.google.com/storage/docs/json_api/v1/how-tos/batc.

No entanto, estou recebendo o seguinte erro ao executar meu 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"
  }
}

lguém sabe qual é o formato correto do corpo dentro da peça múltipla quando solicita a solicitação em lote de indexação do Googl

Agradecemos antecipadamente!

questionAnswers(2)

yourAnswerToTheQuestion