Você já chamou uma skill e escutou a Alexa dizer: “Desculpe, estou tendo problemas para acessar sua skill agora.”?
Nesse artigo eu vou te mostrar como podemos descobrir o que está acontecendo quando ouvimos uma resposta como essa.
Vamos conversar sobre como depurar erros nas nossas skills.
Depurar Erros Da Skill
Se você já desenvolveu uma skill através do console do desenvolvedor, com certeza já se deparou com este erro durante os testes da skill:
“Ocorreu um problema com a resposta da skill solicitada.”
Ou até mesmo depois de ter conseguido certificar e publicar sua skill, receber esta resposta:
“Desculpe, estou tendo problemas para acessar sua skill agora.”
Este tipo de erro acontece por uma variedade de razões, incluindo:
- SSML inválido – uma tag pode estar ausente ou não foi fechada corretamente.
- Arquivos de áudio inválidos – Um arquivo mp3 pode ser inválido.
- Problemas com ativos usados pela skill – Talvez a skill use arquivos de imagem corrompidos ou ausentes.
Nesses casos, quando ocorre um erro, a sessão é fechada e a skill executa o SessionEndedRequest.
Podemos usar essa solicitação para depurar erros. Basta para isso registrar, depurar e identificar o motivo do erro para corrigir o problema.
Também podemos registrar informações adicionais, como a ID da solicitação e o nome da intenção.
Você pode usar essas informações, juntamente com as informações de erro do SessionEndedRequest, para identificar a intenção da falha, bem como a causa raiz do erro.
O SessionEndedRequest retornado no caso de erro contém o tipo de erro e a mensagem de erro e se parece com isto:
Assim que tivermos essas informações registradas, podemos verificar nossos logs para depurar e identificar quaisquer problemas.
SessionEndedRequest
Agora a boa notícia: se você estiver desenvolvendo uma skill do tipo Alexa Hosted, não precisa fazer nada para recolher estes logs de erro.
Os modelos disponíveis para utilizarmos dentro do console do desenvolvedor já possuem um handler para a requisição de fim de sessão. Inclusive com a gravação do log.
Agora, se você estiver desenvolvendo sua skill em um Lambda na AWS, vai precisar criar esta porção de código:
Testando
Para podermos ver a gravação de log funcionando, vamos forçar um erro na resposta da nossa skill.
No console do desenvolvedor, criei uma nova skill utilizando o modelo do Alô Mundo, que no console está como Start From Scratch.
Agora vou introduzir um erro proposital na resposta do LaunchRequest.
Agora vamos até a aba Test para ver a skill disparando o erro.
Consultando O Log
Já falei como acessar o log de uma skill Alexa Hosted no console do desenvolvedor.
Dentro do stream de log, veja os detalhes da gravação para encontrar o log gravado depois que a skill deu erro na hora em que chamamos ela no teste.
Veja que existe um detalhamento do erro gravado, onde é informado que o SSML está mal formado, pois está faltando uma tag de fechamento.
Palavras Finais
Utilizar log para depurar os erros ou para melhorar nossos aplicativos é uma técnica muito utilizada.
É também um pouco de arte, porque você precisa dosar bem a quantidade de logs que você está colocando na aplicação.
Não coloque muitos logs a ponto de interferir na performance do aplicativo e nem muito pouco, a ponto dos logs gravados não servirem para nada.
Não identificar e abordar esses problemas com a skill pode resultar em uma experiência ruim e inconsistente do usuário, o que pode afetar as revisões da skill.
Meu e-book com 4 passos para criar sua primeira skill Alexa está GRATUITO por tempo limitado!
Olha o link: 👉🏼 http://celsokitamura.com.br/minha-primeira-skill-alexa
Bora aprender a desenvolver skills para Alexa!