如何在执行语音命令之前让 Alexa 向 android 应用程序发送身份验证

问题描述

所以这就是我想要做的。当我要求 Alexa 开灯时(例如),它需要将身份验证代码发送到一个 android 应用程序(我也需要开发),然后当用户确认代码时,灯需要打开。>

是否可以这样做,是否有任何教程可以解释这一点,或者是否有更好的方法来保护语音命令以执行某些功能

任何帮助将不胜感激。

我遵循了 this 教程,所以我想到了当要求打开灯时,Alexa 要求输入 pin 或密码,然后将命令发送到 GPIO Pin

以下是教程中的代码

import logging
import os

from flask import Flask
from flask_ask import Ask,request,session,question,statement
import RPi.GPIO as GPIO

app = Flask(__name__)
ask = Ask(app,"/")
logging.getLogger('flask_ask').setLevel(logging.DEBUG)

STATUSON = ["on","switch on","enable","power on","activate","turn 
on"] 
# all values that are defined as synonyms in type
STATUSOFF = ["off","switch off","disactivate","turn off","disable","turn off"]

@ask.launch
def launch():
speech_text = 'Welcome to the RaspBerry Pi alexa automation.'
return 
question(speech_text).reprompt(speech_text).simple_card(speech_text)

@ask.intent('LightIntent',mapping = {'status':'status'})
# HERE TO ASK FOR CODE THEN IF CORRECT CONTINUE TO TURN LIGHT ON
def Gpio_Intent(status,room):
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(17,GPIO.OUT)
if status in STATUSON:
    GPIO.output(17,GPIO.HIGH)
    return statement('Light was turned on')
elif status in STATUSOFF:
    GPIO.output(17,GPIO.LOW)
    return statement('Light was turned off')
else:
    return statement('Sorry,this command is not possible.')

@ask.intent('AMAZON.HelpIntent')
def help():
speech_text = 'You can say hello to me!'
return  
question(speech_text).reprompt(speech_text).simple_card('HelloWorld',speech_text)


@ask.session_ended
def session_ended():
return "{}",200


if __name__ == '__main__':
if 'ASK_VERIFY_REQUESTS' in os.environ:
    verify = str(os.environ.get('ASK_VERIFY_REQUESTS','')).lower()
    if verify == 'false':
        app.config['ASK_VERIFY_REQUESTS'] = False
app.run(debug=True)

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...