gpt4 book ai didi

python - Python flask-ask 中的 Amazon Alexa 主动事件请求

转载 作者:太空宇宙 更新时间:2023-11-04 09:35:54 25 4
gpt4 key购买 nike

我正在尝试向 Proactive Events API 发出请求通过使用 Python 的 requests 模块。

但是我总是收到范围无效的响应。谁能帮忙?我究竟做错了什么?我的代码如下所示:

@ask.launch
def launch():
content_type = "application/x-www-form-urlencoded;charset=utf-8"
client_id = "amzn1.application-oa2-client.6a48XXXXXXX408"
client_secret = "592XXXXxxxxxxx6"
scope = "alexa::proactive_events"
grant_type = "client_credentials"

data = {"grant_type": grant_type, "client_id": client_id, "client_secret": client_secret, "scope": scope}
r = requests.post("https://api.amazon.com/auth/O2/token", data=data, headers={"content-type": content_type})

speech = render_template("welcome")
reprompt = render_template("welcome_reprompt")
return question(speech).reprompt(reprompt)

这是我得到的回应:

{'error_description': 'The request has an invalid parameter : scope', 'error': 'invalid_scope'}

最佳答案

由于您获得无效范围的原因之一是您的技能 list 中没有包含事件,因此我在此处包括了一些步骤。我发现使用 SMAPI 更新技能 list 非常麻烦,所以我改用 ask cli。

  • 安装 ask-cli:获取您的亚马逊账户的授权码。在我的例子中,后端不是 AWS lambda 函数,而是一个外部网络服务器
  • 获取 json 格式的技能 list :ask api get-skill -s "amzn1.ask.skill.ZZZYYYZZ"--阶段开发 > skill.json
  • 将通知权限和事件元素添加到 list 中:

    {
    "name": "alexa::devices:all:notifications:write"
    }

    “事件”:{
    “出版物”:[
    {
    "eventName": "AMAZON.AAABBBCC"
    }
    ],
    “端点”:{
    “uri”:“https://XXXYYYZZ:443/whatevercontext”
    }
    }

  • 更新 list :询问 api update-skill -s "amzn1.ask.skill.ZZZYYYZZ"--stage development -f skill.json

    • 在 alexa 应用程序中为您的特定技能启用通知

现在您应该能够获取 token ,下一步是向设备发送通知

关于python - Python flask-ask 中的 Amazon Alexa 主动事件请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53795375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com