Tengo problemas cuando implemento mi habilidad de alexa en las funciones de la nube de Google.
Inicialmente, estoy usando el siguiente código.
Mi archivo skill.js
//imports here... Router.post("/:locale", async (req, res) => { const requestEnvelope = JSON.stringify(req.body); try { await new SkillRequestSignatureVerifier().verify(requestEnvelope, req.headers); await new TimestampVerifier().verify(requestEnvelope); } catch (err) { console.log(`Error with message: ${err.message}`); console.log(`Error object: ${JSON.stringify(err)}`); return res.status(400).send(err.message); } const responseASK = await skill.invoke(req.body); return res.status(200).send(responseASK); }); module.exports = Router; En mi archivo server.js
const skillRoute = require("./skill"); const express = require("express"); const server = express(); server.use("/", skillRoute); exports.server = functions.https.onRequest(server);Todo va bien con la implementación, incluso, puedo invocar mi habilidad de Alexa normalmente. Pero, al ejecutar las validaciones para distribución, me sale el siguiente problema:
La habilidad rechaza la solicitud cuando se ejecuta con propiedades adicionales en la solicitud JSON.
Cuando invocamos la habilidad con parámetros adicionales, la habilidad la está rechazando cuando esperamos que sea aceptada. Las versiones futuras de Alexa Skills Kit pueden agregar nuevas propiedades a los formatos de solicitud y respuesta JSON, al tiempo que mantienen la compatibilidad con versiones anteriores de las propiedades existentes. Su código debe ser resistente a este tipo de cambios. Por ejemplo, su código para deserializar una solicitud JSON no debe romperse cuando encuentra una propiedad nueva y desconocida. Asegúrese de que su código pueda manejar nuevos atributos y no se rompa cuando encuentre nuevas propiedades en la solicitud JSON. Documentación Ayuda: Solicitud y respuesta Referencia JSON: Haga clic aquí
En la consola de mi servidor obtengo los siguientes errores:
Error with message: request body and signature does not match
y:
Error object: {"name":"AskSdk.SkillRequestSignatureVerifier Error"}
Me parece que puede ser el resultado de alguna actualización de ask-sdk-core , ya que tengo otros servidores trabajando con el mismo código.