Struggling to PATCH a JSON response in Apps Script

Estoy tratando de arreglar una solicitud de JSON usando Google Apps Script. Estoy tratando de cambiar el objeto 'bidAmountMicros' que se ve así desde el documentación

    {
  "bidStrategy": {
    "fixedBid": {
      "bidAmountMicros": 0
    }
  }
}

Estoy usando el script de aplicaciones y no puedo por la vida de mí trabajar donde voy mal. Así es como intento hacerlo...

    function updateBid(){
  var url = 'https://displayvideo.googleapis.com/v1/advertisers/' +
    advertiserID + '/lineItems/' + lineitemID + '?updateMask=bidStrategy';
    var body = {
      'bidStrategy': 'fixedBid',
      'bidAmountMicros': '4000000'      
    }   
    var result = JSON.parse(callApi_(url, 'PATCH', body, null));
  Logger.log(result);  
}

Creo que me equivoco en que la ofertaAmountMicros está dentro de la 'bidStrategy' en lugar de un objeto seperado en sí mismo, pero ¿cómo lo llamaría desde dentro de ese objeto? Siento si es una pregunta estúpida, bastante nueva para esto.

Gracias.

Pregunta hecha hace 3 años, 4 meses, 26 días - Por codeglitch


3 Respuestas:

  • Quité las partes que no estaban definidas en su código. Así es como crear el JSON:

    function updateBid(){
        var body = {
          'bidStrategy': {
            'fixedBid':{
              'bidAmountMicros': '4000000' 
            }  
          }   
        };
      Logger.log(JSON.stringify(body));  
    }
    

    Respondida el Dec 19, 2020 a las 21:19 - por techwizkid

    Votos positivos: 0 | Votos negativos: 0

  • ¡Claro! El problema está en cómo estás estructurando el cuerpo de tu solicitud PATCH. En el ejemplo que proporcionaste, 'bidAmountMicros' está dentro de 'fixedBid', que a su vez está dentro de 'bidStrategy'.

    Aquí te dejo cómo podrías modificar tu función para que se asemeje más al ejemplo de la documentación:

    javascript
    function updateBid() {
      var url = 'https://displayvideo.googleapis.com/v1/advertisers/' +
        advertiserID + '/lineItems/' + lineitemID + '?updateMask=bidStrategy';
    
      var body = {
        'bidStrategy': {
          'fixedBid': {
            'bidAmountMicros': '4000000'      
          }
        }   
      };
    
      var result = JSON.parse(callApi_(url, 'PATCH', body, null));
      Logger.log(result);  
    }
    

    En este caso, 'bidAmountMicros' está dentro de 'fixedBid', que a su vez está dentro de 'bidStrategy' en el cuerpo de la solicitud PATCH.

    Espero que con este ajuste logres realizar la solicitud PATCH de manera exitosa. ¡Déjame saber si necesitas más ayuda!

    Respondida el Dec 20, 2020 a las 21:20 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Estás en lo correcto al suponer que bidAmountMicros debe estar dentro del objeto bidStrategy. Aquí tienes el código corregido:

    
    function updateBid() {
      const url = 'https://displayvideo.googleapis.com/v1/advertisers/' +
        advertiserID + '/lineItems/' + lineitemID + '?updateMask=bidStrategy';
      const body = {
        'bidStrategy': {
          'fixedBid': {
            'bidAmountMicros': '4000000'
          }
        }
      };
      const result = JSON.parse(callApi_(url, 'PATCH', body, null));
      console.log(result);
    }
    

    En este código corregido, el objeto 'bidAmountMicros' está dentro del objeto 'bidStrategy'. Asegúrate de reemplazar advertiserID y lineitemID con los valores reales.

    Respondida el Dec 20, 2020 a las 21:29 - por Gemini

    Votos positivos: 0 | Votos negativos: 0