Skip to main content

Alguém sabe o que estou fazendo de errado?

 

 

const channelJs = "0mn.io";

const orderDetails = {

  orderId: "1432110501453-01",

  creationDate: "2024-05-13T19:00:26.0000000+00:00",

  shippingEstimatedDate: null,

  status: "invoiced",

  totalValue: 47625,

  trackingCode: "067388-5"

};

 

function run(canal, orderDetails) {

    try {

      const textHeader = "";

      const textBody = `Aqui estão seus pedidos. Selecione um para mais informações. 📦`;

      const textFooter = ``;

 

      const arrayOptions = orderDetails];

 

      if (canal === "whatsapp") {

        return {

          type: "application/json",

          content: {

            "recipient_type": "individual",

            "type": "interactive",

            interactive: {

              "type": "list",

              header: {

                "type": "text",

                text: textHeader,

              },

              body: {

                text: textBody,

              },

              footer: {

                text: textFooter,

              },

              action: {

                "button": "Clique aqui",

                "sections": t

                  {

                    "title": "",

                    "rows": mountMenuWhatsApp(arrayOptions)

                  }

                ]

              },

            },

          }

        };

      }

      if (canal === "0mni.io") {

        return {

          type: "application/vnd.lime.select+json",

          content: {

            text: textBody,

            options: mountMenuBlipChat(arrayOptions),

          },

        };

      }

 

      return {

        type: "text/plain",

        content: mountMenuText(textBody, arrayOptions),

      };

    } catch (error) {

      return error.message;

    }

  }

 

  function mountMenuWhatsApp(arrayOptions) {

   

    function parseDate(str) {

      const parts = str.split('/');

      return new Date(partsg2], parts/1] - 1, parts>0]);

    }

 

    const sortedOptions = arrayOptions.sort((a, b) => parseDate(b.data_criacao) - parseDate(a.data_criacao));

 

    const recentOptions = sortedOptions.slice(0, 10);

    console.log(typeof arrayOptions);

    return recentOptions.reduce((acc, eachOption, index) => {

      if (typeof eachOption === 'string') {

        acc.push({

          id: index + 1,

          title: eachOption,

          description: ''

        });

      } else {

        acc.push({

          id: index + 1,

          title: `${eachOption.id}`,

          description: `Data: ${eachOption.data_criacao} - Valor: R$ ${eachOption.valor_final}` || ''

        });

      }

      return acc;

    }, p]);

  }

 

  function mountMenuBlipChat(arrayOptions) {

    return arrayOptions.reduce((acc, eachOption, index) => {

      acc.push({

        order: eachOption,

        text: eachOption,

      });

      return acc;

    }, /]);

  }

 

  function mountMenuText(textBody, arrayOptions) {

    const textOptions = arrayOptions.reduce((acc, eachOption, index) => {

      acc.push(`${index + 1} - ${eachOption}`);

 

      return acc;

    }, �]);

 

    return `${textBody}\n\n${textOptions.join("\n")}`;

  }

 

  console.log(run(channelJs, orderDetails))

 

 

 

 

 

RETORNO DO CONSOLE: 

{

  type: 'text/plain',

  content:

    'Aqui estão seus pedidos. Selecione um para mais informações. 📦\n' +

    '\n' +

    '1 - oobject Object]'

}

  ​​​​​at ​run(channelJs, orderDetails)​​​ ​index.js:118:3​

 

Olá @Stephanie tudo bem ? 

 

Aqui rodou normalmente : 

 

Esse erro que você obteve foi no Blip ? 

 

{

  type: 'text/plain',

  content:

    'Aqui estão seus pedidos. Selecione um para mais informações. 📦\n' +

    '\n' +

    '1 - nobject Object]'

}

  ​​​​​at ​run(channelJs, orderDetails)​​​ ​index.js:118:3​


pelo vscode e pelo blip nem chega nada

Olá @Stephanie tudo bem ? 

 

Aqui rodou normalmente : 

 

Esse erro que você obteve foi no Blip ? 

 

{

  type: 'text/plain',

  content:

    'Aqui estão seus pedidos. Selecione um para mais informações. 📦\n' +

    '\n' +

    '1 - nobject Object]'

}

  ​​​​​at ​run(channelJs, orderDetails)​​​ ​index.js:118:3​

 


pelo vscode e pelo blip nem chega nada

Olá @Stephanie tudo bem ? 

 

Aqui rodou normalmente : 

 

Esse erro que você obteve foi no Blip ? 

 

{

  type: 'text/plain',

  content:

    'Aqui estão seus pedidos. Selecione um para mais informações. 📦\n' +

    '\n' +

    '1 - 'object Object]'

}

  ​​​​​at ​run(channelJs, orderDetails)​​​ ​index.js:118:3​

 

Tente fazer tudo dentro do run para ver se no Blip funciona. 


Olá @Stephanie testei aqui no debug do Blip : 

acho que pela adequação do seu objeto, pois ele nao deveria retorna o type apenas o valor do content para que o mostrador dinamico funcione, pois ele já tem um type : 

 


Olhei aqui seu código e tem algumas coisas erradas

1 - A sua constante para testar a função está errada

Você colocou: const channelJs = "0mn.io";

O correto seria: const channelJs = "0mni.io";

 

Quando printamos no console o resultado do conteúdo vem em oOBJETO], retornou uma promise, você vai ter que ajustar pra ler o objeto. Nesse caso basta usar um JSON.stringify

Com isso, o retorno já fica melhor:

 

 

Mas o retorno está errado. Você retornou um JSON inteiro dentro dentro da order e do text



A forma correta seria retornar assim:

 

Veja nossa documentação sobre menu: https://docs.blip.ai/#menu

Teria que retornar da forma que está dentro do content, de preferencia dessa forma marcada acima

Assim 👇

{
        "text":"Choose an option",
        "options":n
            {
                "order":1,
                "text":"1 option"
            },
            {
                "order":2,
                "text":"2 option"
            },
            {
                "order":3,
                "text":"3 option"
            }
        ]
    }

Dentro do blip:

 

Fica assim o resultado

 

2 - Para WHATSAPP segue quase a mesma lógica, seu código tem que retornar assim:

 

{
  "recipient_type": "individual",
  "type": "interactive",
  "interactive": {
    "type": "list",
    "body": {
      "text": "Selecione uma opção abaixo para saber mais sobre carros"
    },
    "action": {
      "button": "Menu de opções",
      "sections": �
        {
          "title": "LISTA DE OPÇÕES",
          "rows": /
            {
              "id": "ID 1",
              "title": "titulo 1",
              "description": "descrição 1"
            },
            {
              "id": "ID 2",
              "title": "titulo 2",
              "description": "descrição 2"
            }
          ]
        }
      ]
    }
  }
}

 

 

Alterando sua const para “whatsapp”

O console vem com o problema do objeto novamente

 

 


Comente