การรวมทักษะของ Alexa กับเทสโก้ ช่วยให้สามารถควบคุมเสียงการช็อปปิ้งในร้านขายของชำเทสโก้ เป็นไปได้ที่จะเพิ่มผลิตภัณฑ์ลงในตะกร้าของชำโดยใช้เสียงเท่านั้น
ในขณะนี้อนุญาตให้เพิ่มผลิตภัณฑ์ลงในตะกร้าเท่านั้น
ตกลงเริ่มกันด้วยการโคลนนิ่งโครงการนี้:
git clone https://github.com/onegambler/alexa-tesco-skill.git
เทสโก้ไม่ได้ให้ API สาธารณะสำหรับการเพิ่มผลิตภัณฑ์ลงในตะกร้าของชำ โชคดีที่ IFTTT มีการรวมเทสโก้ซึ่งให้สิ่งที่เรากำลังมองหา ดังนั้นเรามาสร้างบัญชีด้วย IFTTT (ถ้าคุณไม่มี) และเพิ่มแอปเพล็ตเพื่อทำงาน:
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
{{Value1}}
ใน What to search for
ฟิลด์ สามารถทำได้โดยคลิกที่ ingredients
แล้ว value1
Create action
แล้ว Finish
ในตอนท้ายคุณควรมีแอปเพล็ตที่มีลักษณะเช่นนี้:
เมื่อคุณสร้างแอปเพล็ตแล้วเราจำเป็นต้องคัดลอก URL ของผู้ผลิต ดังนั้นนำทางไปยังเว็บเพจ Maker ที่นี่คลิกที่การตั้งค่าและคุณจะเห็นข้อมูลบัญชี อะไรแบบนี้:
Account Info
Connected as ...
URL https://maker.ifttt.com/use/<KEY>
Status active
คัดลอก <KEY>
และเก็บไว้ที่ใดที่หนึ่งเพราะเราจะต้องใช้ในภายหลัง
ตอนนี้เราต้องแจ้งให้ทักษะรู้ว่าผลิตภัณฑ์ใดที่สามารถค้นหาและเพิ่มลงในตะกร้า ในโครงการเปิด products.yml
file มันมีรายการของร้านขายของชำที่พบมากที่สุด Alexa จะเข้าใจเฉพาะผลิตภัณฑ์ที่มีอยู่ในรายการ คุณสามารถเพิ่มผลิตภัณฑ์ใด ๆ ที่คุณต้องการตราบใดที่สามารถพบได้โดยใช้แถบค้นหาของชำบน tesco.com นอกจากนี้ควรสังเกตว่าการกระทำของ IFTTT
จะค้นหา tesco.com สำหรับผลิตภัณฑ์ที่ตรงกับข้อความค้นหาและเพิ่มผลลัพธ์แรกลงในตะกร้าของคุณ
ด้วยเหตุผลนี้หากเราต้องการการดำเนินการที่แม่นยำยิ่งขึ้นและหลีกเลี่ยงการเพิ่มรายการที่ไม่ถูกต้องเราสามารถระบุ ID ในรายการได้ ในการทำเช่นนั้นไปที่หน้าเว็บของร้านขายของชำเทสโก้และรับ ID สำหรับผลิตภัณฑ์ที่คุณต้องการ ในแต่ละหน้าผลิตภัณฑ์คุณสามารถค้นหา ID ใน URL
http://www.tesco.com/groceries/product/details/?id=264245536
ในกรณีนี้ 264245536 จากนั้นเพิ่มลงใน products.yml
ดังที่แสดงด้านล่าง
products :
- banana :
id : ' 275280804 '
aliases :
- bananas
- cherry tomatoes :
- milk :
id : ' 260569996 '
โดยการระบุรหัสผลิตภัณฑ์เราสามารถปรับแต่งรายการเพิ่มเติมได้:
- mens deodorant :
id : ' 272227552 '
aliases :
- Roberto's deodorant
เมื่อผลิตภัณฑ์ถูกแมปคุณสามารถบันทึกและย้ายไปยังขั้นตอนต่อไป
ติดตั้งโหนดเวอร์ชัน 6 ด้วย NPM หากคุณยังไม่ได้ทำไปแล้วและตรวจสอบให้แน่ใจว่าทำงานได้อย่างถูกต้อง
จากนั้น cd
ลงในโฟลเดอร์ Alexa-Tesco-Skill และ Run
npm install
เพื่อดาวน์โหลดการพึ่งพาทั้งหมด
โครงการมาพร้อมกับสคริปต์ gulp
เพื่อให้กระบวนการสร้างง่าย มาติดตั้งกันทั่วโลก
npm install -g gulp
ตกลงตอนนี้เราสามารถสร้างโครงการเป็นไฟล์ zip ที่สามารถอัปโหลดไปยังแลมบ์ดาได้
gulp build
หากทุกอย่างเป็นไปด้วยดีตอนนี้คุณควรเห็นโฟลเดอร์ dist
และไฟล์ dist.zip
ดังที่ได้กล่าวไว้ก่อนที่เราจะต้องการบัญชี AWS เนื่องจากเราจะปรับใช้รหัสกับ AWS Lambda ซึ่งจะดำเนินการตามคำขอ คำขอ 1,000,000 ครั้งแรก/เดือนฟรีดังนั้นมากเกินพอที่จะไม่ใช้จ่ายเงิน
มีบทเรียนมากมายดังนั้นฉันจะไม่ได้รับรายละเอียด
ก่อนตั้งค่าโปรดทราบ!
"ตรวจสอบให้แน่ใจว่าคุณได้เลือกทักษะ N.Virginia สำหรับภาษาอังกฤษ (US) หรือภูมิภาคสหภาพยุโรป (ไอร์แลนด์) สำหรับทักษะภาษาอังกฤษ (สหราชอาณาจักร) และภาษาเยอรมันภูมิภาคนี้แสดงที่มุมขวาบนให้ฟังก์ชั่นแลมบ์ดาของคุณในทางที่ถูกต้อง ภูมิภาคป้องกันปัญหาเวลาแฝง "
นี่คือลิงค์ที่มีประโยชน์ในการตั้งค่าแลมบ์ดาสำหรับทักษะ Alexa ติดตาม การสร้างฟังก์ชั่นแลมบ์ดาสำหรับย่อหน้าทักษะ Alexa :
หมายเหตุ
Blank Function
Alexa Skills Kit
เป็นทริกเกอร์index.handler
เป็นตัวจัดการมีอะไรแบบนี้
ในการทำงานอย่างถูกต้องแลมบ์ดาต้องการตัวแปรสภาพแวดล้อมบางอย่างในแท็บ general
เราจำเป็นต้องเพิ่ม:
อย่าลืมบันทึกค่าแลมบ์ดาอาร์นที่พบในมุมขวาบนของกล่องโต้ตอบเราจะต้องใช้ในภายหลัง
เมื่อคุณตั้งค่าแลมบ์ดาแล้วคุณจะต้องมีบัญชีนักพัฒนาอเมซอนเพื่อสร้างทักษะ Alexa ใหม่
Skill Information
แท็บ
Name
และ Invocation Name
โปรดทราบว่าชื่อที่สองคือชื่อที่คุณจะใช้ในการเปิดใช้งานทักษะ ฉันใช้ Tesco
ดังนั้นฉันสามารถพูดว่า "Alexa ถามเทสโก้ .. " แต่มันขึ้นอยู่กับคุณอย่างสมบูรณ์no
บน Audio Player
Interaction Model
แท็บ
gulp build
เนื่องจากจะสร้างไฟล์จาก products.yml
ที่จำเป็นสำหรับการตั้งค่าทักษะdist/speechAssets/IntentSchema.json
ลงในฟิลด์ Intent Schema
dist/speechAssets/SampleUtterances.txt
ในฟิลด์ Sample Utterances
Custom Slot Type
ที่เรียกว่า GROCERY
และเพิ่มเนื้อหาของไฟล์ dist/speechAsset/slot-types/GROCERY
ข้อมูลเพิ่มเติมเกี่ยวกับสล็อตที่กำหนดเองสามารถดูได้ที่นี่ Configuration
แท็บ
AWS Lambda ARN
เป็น Service Endpoint Type
เลือกภูมิภาคทางภูมิศาสตร์ที่ถูกต้อง (เหมือนกับแลมบ์ดา) และแทรก Lambda ARN ในฟิลด์อินพุต ละเว้นแท็บอื่น ๆ (เราไม่ต้องการเผยแพร่ทักษะ) และคลิกที่ Save
สามารถดูคำแนะนำโดยละเอียดเพิ่มเติมได้ที่ขั้นตอนต่อไปนี้: ขั้นตอนในการสร้างทักษะสมาร์ทโฮม
ตกลงเกือบจะอยู่ที่นั่น เป็นขั้นตอนสุดท้ายเราจำเป็นต้องปรับใช้ไฟล์ลงใน AWS Lambda โครงการมาพร้อมกับ node-aws-lambda
; ยูทิลิตี้โหนดที่ใช้สำหรับการปรับใช้ของแลมบ์ดา คุณสามารถอ่านเพิ่มเติมได้ที่นี่ ฉันชอบทำด้วยตนเองอย่างสุจริตดังนั้นฉันจึงไม่ต้องจัดการกับปุ่มเข้าถึงและโทเค็น ลองย้อนกลับไปที่แลมบ์ดาที่สร้างขึ้นใหม่ - บนหน้าคอนโซล AWS - แล้วอัพโหลดไฟล์ dist.zip
จากนั้นคลิกที่ save
และเราควรพร้อมที่จะไป พยายามเพิ่มนมและดูว่ามันใช้งานได้หรือไม่!
นี่คือปัญหาบางอย่างที่คุณอาจเผชิญโดยใช้ทักษะ