Alexa技能与Tesco的整合。它允许在特易购杂货上进行购物声音。只需使用语音,就可以将产品添加到杂货篮中。
目前,它只允许在篮子里添加产品
好的,让我们从克隆这个项目开始:
git clone https://github.com/onegambler/alexa-tesco-skill.git
乐购(Tesco)不提供公共API来向杂货篮中添加产品;幸运的是,IFTTT具有TESCO集成,可以准确地提供我们想要的东西。因此,让我们使用IFTTT(如果没有一个)来创建一个帐户,并添加一个applet来完成这项工作:
My Applets
,然后单击New applet
this
并搜索Webhooks
。Connect
,然后Receive a web request
授予服务许可Event Name
集tesco_search
。这必须相同!create trigger
that
并搜索Tesco
Connect
,然后Search for and add product to basket
允许服务许可What to search for
中写入{{Value1}}
。也可以通过单击ingredients
来完成,然后value1
Create action
,然后Finish
最后,您应该有一个看起来像这样的小程序:
创建小程序后,我们需要复制Maker URL。因此,请在此处导航到Maker网页,单击设置,您将看到帐户信息。这样的事情:
Account Info
Connected as ...
URL https://maker.ifttt.com/use/<KEY>
Status active
复制<KEY>
并将其保留在某个地方,因为我们以后需要使用它。
现在,我们需要让技能知道可以搜索哪些产品并将其添加到篮子中。在项目中,打开文件products.yml
。它包含最常见的杂货列表。 Alexa只会了解列表中包含的产品。您可以添加所需的任何产品,只要可以使用Tesco.com上的杂货搜索栏找到。还应注意的是IFTTT动作
将搜索Tesco.com以匹配搜索文本的产品,并将第一个结果添加到您的篮子中。
因此,如果我们想要更精确的操作并避免添加错误的项目,则可以在列表中指定其ID。为此,请访问Tesco杂货网页,获取所需产品的ID。在每个产品页面中,您可以在URL中找到ID
http://www.tesco.com/groceries/product/details/?id=264245536
在这种情况下, 264245536 ,然后将其添加到products.yml
中。
products :
- banana :
id : ' 275280804 '
aliases :
- bananas
- cherry tomatoes :
- milk :
id : ' 260569996 '
通过指定产品ID,我们可以进一步自定义列表:
- mens deodorant :
id : ' 272227552 '
aliases :
- Roberto's deodorant
映射产品后,您可以保存并移至下一步。
使用NPM安装节点版本6,如果您尚未完成,并确保它正常工作。
然后cd
进入文件夹Alexa-Tesco技能并运行
npm install
下载所有依赖项。
该项目带有一些gulp
脚本,以使构建过程变得容易。因此,让我们在全球安装
npm install -g gulp
好的,现在我们可以将项目构建到可以上传到lambda的ZIP文件中。
gulp build
如果一切顺利,您现在应该看到一个dist
文件夹和dist.zip
文件。
如前所述,我们需要一个AWS帐户,因为我们将将代码部署到AWS Lambda,该代码将处理请求。每月免费的1,000,000个请求是免费的,因此足以不花一分钱。
有很多教程,所以我不会详细介绍。
设置之前,请注意!
“确保您已经选择了英语(美国)技能的N.Virginia或英语(英国)和德国技能的欧盟(爱尔兰)地区。该地区显示在右上角。以正确的方式提供您的lambda功能区域防止潜伏期问题”
这是为Alexa技能设置Lambda的有用链接,请按照Alexa技能段落创建Lambda功能:
笔记
Blank Function
Alexa Skills Kit
配置为触发index.handler
设置为处理程序所以这样的东西
为了正确工作,lambda需要一些环境变量,在general
选项卡中,我们需要添加:
请记住要保存在对话框右上角的lambda arn值,我们稍后需要它。
设置Lambda后,您将需要一个Amazon Developer帐户来创建新的Alexa技能。
标签Skill Information
Name
和Invocation Name
。请注意,第二个是您要使用的名称来激活技能。我使用Tesco
,所以我可以说“ Alexa询问Tesco ..”,但这完全取决于您。no
Audio Player
TAB Interaction Model
gulp build
命令,因为它将从products.yml
生成文件。dist/speechAssets/IntentSchema.json
的内容粘贴到Intent Schema
字段中Sample Utterances
字段中粘贴dist/speechAssets/SampleUtterances.txt
的含量。GROCERY
Custom Slot Type
,并添加文件dist/speechAsset/slot-types/GROCERY
的内容。有关自定义插槽的更多信息,请参见此处。选项卡Configuration
AWS Lambda ARN
设置为Service Endpoint Type
,选择正确的地理区域(与lambda相同),然后在输入字段中插入lambda arn。忽略其他选项卡(我们不想发布技能),然后单击Save
可以在以下内容中找到更详细的说明:创建智能家庭技能的步骤
好,几乎在那里。作为最后一步,我们需要将文件部署到AWS lambda中。该项目带有node-aws-lambda
;用于Lambda部署的节点实用程序。您可以在这里阅读更多有关它的信息。老实说,我更喜欢手动执行此操作,因此我不必处理访问键和令牌;因此,让我们回到新创建的lambda-在AWS控制台页面上 - 让我们上传dist.zip
文件。然后单击save
,我们应该准备就绪。尝试添加一些牛奶,看看它是否有效!
这是您可能会使用技能遇到的一些问题