Alexa Skill Integration com Tesco. Permite controlar a voz das compras em mantimentos da Tesco. É possível adicionar produtos à cesta de supermercado apenas usando a voz.
No momento, ele apenas permite adicionar um produto à cesta
Ok, vamos começar clonando este projeto:
git clone https://github.com/onegambler/alexa-tesco-skill.git
A Tesco não fornece APIs públicas para adicionar produtos à cesta de supermercados; Felizmente, o IFTTT tem uma integração da Tesco que fornece exatamente o que estamos procurando. Então, vamos criar uma conta com ifttt (se você não tiver uma) e adicionar um applet para fazer o trabalho:
My Applets
e depois New applet
this
e pesquise Webhooks
.Connect
e, em seguida, Receive a web request
Event Name
defina tesco_search
. Isso precisa ser o mesmo!create trigger
that
e procure por Tesco
Connect
e depois Search for and add product to basket
{{Value1}}
What to search for
campo. Isso também pode ser feito clicando em ingredients
e depois value1
Create action
e Finish
No final, você deve ter um applet que se pareça com o seguinte:
Depois de criar o applet, precisamos copiar o URL do fabricante. Portanto, navegue até a página da criadora, clique aqui nas configurações e você verá as informações da conta. Algo assim:
Account Info
Connected as ...
URL https://maker.ifttt.com/use/<KEY>
Status active
Copie o <KEY>
e mantenha isso em algum lugar, pois precisaremos usá -lo mais tarde.
Agora precisamos informar a habilidade de quais produtos podem ser pesquisados e adicionados à cesta. No projeto, abra o arquivo products.yml
. Ele contém uma lista das compras mais comuns. Alexa entenderá apenas os produtos contidos na lista. Você pode adicionar qualquer produto que desejar, desde que possa ser encontrado usando a barra de pesquisa de compras no Tesco.com. Também deve -se notar que a ação IFTTT
Pesquisará o Tesco.com por produtos que correspondem ao texto da pesquisa e adicione o primeiro resultado à sua cesta.
Por esse motivo, se queremos uma ação mais precisa e evitamos adicionar o item errado, podemos especificar seu ID na lista. Para fazer isso, vá para a página da web da Tesco Mercearies e obtenha os IDs para os produtos que você deseja. Em cada página do produto, você pode encontrar o ID no URL
http://www.tesco.com/groceries/product/details/?id=264245536
Nesse caso, 264245536 e adicione -o ao products.yml
como mostrado abaixo.
products :
- banana :
id : ' 275280804 '
aliases :
- bananas
- cherry tomatoes :
- milk :
id : ' 260569996 '
Ao especificar o ID do produto, podemos personalizar ainda mais a lista:
- mens deodorant :
id : ' 272227552 '
aliases :
- Roberto's deodorant
Depois que os produtos são mapeados, você pode salvar e passar para a próxima etapa.
Instale a versão 6 do nó com o NPM, se você ainda não o fez e verifique se ele funciona corretamente.
Em seguida, cd
na pasta Alexa-Tesco-Skill e execute
npm install
Para baixar todas as dependências.
O projeto vem com alguns scripts gulp
para facilitar o processo de construção. Então, vamos instalá -lo globalmente
npm install -g gulp
OK, agora podemos transformar o projeto em um arquivo zip que pode ser carregado no Lambda.
gulp build
Se tudo correu bem, agora você deve ver uma pasta dist
e um arquivo dist.zip
.
Conforme mencionado antes de precisarmos de uma conta da AWS, pois implantaremos o código no AWS Lambda, que processará as solicitações. Os primeiros 1.000.000 de solicitações/mês são gratuitos, então mais do que suficiente para não gastar um centavo.
Há muitos tutoriais, então não vou entrar em detalhes.
Antes de configurá -lo, observe!
"Verifique se você selecionou as habilidades N.Virginia for English (EUA) ou a região da UE (Irlanda) para o inglês (Reino Unido) e as habilidades alemãs. A região é exibida no canto superior direito. Fornecendo sua função Lambda na correta região impede problemas de latência "
Aqui está um link útil para configurar um Lambda para uma habilidade Alexa, siga a criação de uma função lambda para um parágrafo de habilidades do Alexa :
Notas
Blank Function
Alexa Skills Kit
como gatilhoindex.handler
como manipuladorEntão, algo assim
Para trabalhar corretamente, o Lambda precisa de algumas variáveis de ambiente, na guia general
precisamos adicionar:
Lembre -se de salvar o valor Lambda Arn, encontrado no canto superior direito da caixa de diálogo, precisaremos dele mais tarde.
Depois de configurar seu Lambda, você precisará de uma conta de desenvolvedor da Amazon para criar uma nova habilidade do Alexa.
Skill Information
da guia
Name
e Invocation Name
. Esteja ciente de que o segundo é o nome que você usará para ativar a habilidade. Eu uso Tesco
, para que eu possa dizer "Alexa Ask Tesco ..", mas depende completamente de você.no
sem Audio Player
Interaction Model
da guia
gulp build
, pois ele gerará arquivos do products.yml
necessário para a habilidade configuradadist/speechAssets/IntentSchema.json
no campo Intent Schema
dist/speechAssets/SampleUtterances.txt
no campo Sample Utterances
.Custom Slot Type
chamado GROCERY
e adicione o conteúdo do arquivo dist/speechAsset/slot-types/GROCERY
. Mais informações sobre slots personalizados podem ser encontrados aqui. Configuration
da guia
AWS Lambda ARN
como Service Endpoint Type
, selecione a região geográfica correta (o mesmo que o lambda) e insira o Lambda ARN no campo de entrada. Ignore outras guias (não queremos publicar a habilidade) e clique em Save
Instruções mais detalhadas podem ser encontradas no seguinte: etapas para criar uma habilidade de casa inteligente
Ok, quase lá. Como última etapa, precisamos implantar o arquivo na AWS Lambda. O projeto vem com node-aws-lambda
; Um utilitário de nós usado para a implantação da Lambda. Você pode ler mais sobre isso aqui. Sinceramente, prefiro fazer isso manualmente, para não precisar lidar com chaves de acesso e tokens; Então, vamos voltar ao recém -criado Lambda - na página do console da AWS - e vamos fazer o upload do arquivo dist.zip
. Em seguida, clique em save
e devemos estar prontos para ir. Tente adicionar um pouco de leite e veja se funciona!
Aqui estão alguns problemas que você pode enfrentar usando a habilidade