phoice / phlexa-mezzio-skeleton

使用phlexa、PHP和Mezzio构建针对Amazon Alexa的语音应用的骨架应用程序。

4.0.0 2024-03-11 07:50 UTC

This package is auto-updated.

Last update: 2024-09-11 09:04:10 UTC


README

使用phlexa、PHP和Mezzio构建针对Amazon Alexa的语音应用的骨架应用程序。

依赖项

此骨架应用程序是用 Mezzio 构建的。有关 Mezzio 微框架的更多详细信息,请参阅官方 文档

安装

使用Composer仅通过骨架应用程序创建一个新的项目

composer create-project phoice/phlexa-mezzio-skeleton name-of-your-project

您将获得什么

  • 一个为处理来自Amazon Alexa的请求并将响应发送回Alexa而设置的Mezzio应用程序。该应用程序基于phlexa库
  • 一个基于phlexa的Alexa应用程序,具有简单的HelloIntent以向用户发送消息。它甚至包含一个可用的隐私页面。
  • 用于Alexa应用程序的文本助手,用于处理消息和技能的标题。
  • 签名验证已内置。
  • 请求日志也已为您设置。

简短教程

  1. 在Amazon开发者门户创建一个账户:https://developer.amazon.com/de/
  2. 切换到Alexa部分并选择Alexa技能套件。https://developer.amazon.com/edw/home.html#/skills
  3. 添加一个新的技能。
  4. 在技能信息中
    • 选择“自定义交互模型”和一种语言
    • 为您的技能输入名称“Hello World”和调用名称“hello world”
    • 保存
  5. 在交互模型中
    • 启动技能构建器
    • 添加一个名为“HelloIntent”的意图
    • 添加“hello world”作为示例短语并按回车键
    • 保存模型
    • 构建模型
  6. 进入配置
    • 选择HTTPS端点和选择一个地理区域
    • 现在将服务器的URL(见下文)作为端点URL复制。
    • 保存
  7. 进入SSL证书
    • 选择合适的选项。
    • 保存
  8. 进入测试
    • 现在您可以测试您的新技能了。
  9. 当您完成开发和测试技能后,填写发布信息和隐私&合规性部分。

有关更多详细信息,请参阅文档

设置您的服务器

要使用PHP运行您的技能,您需要设置支持PHP 7的服务器。安装应用程序并设置SSL证书。有关更多详细信息,请参阅文档

如果已设置服务器,则可以使用以下URL测试Hello示例技能:https://your.server.com/hello/

只需发送一个带有以下标题的POST请求(例如,使用Postman)

Content-Type: application/json
signaturecertchainurl : https://s3.amazonaws.com/echo.api/echo-api-cert-4.pem
signature: B/bxAdkIabkzsScfUsSfkz7pJrNLc1eoOOLk8qwG1ZudQRv7KcvyNa/91g74Zg3cRpifXEco4669MaZb4Cqs+vZ9TaTfftAMzy/Pc79AMuf1dU6GfUU7tp6cuavfqTD8cWlYN5TjEMCJbS1Y+VU929mX0edOZcZin7db6bOoZHu5gU8OSQ2r+6UMk88z5uuSjPyt9Du9vaC3Ics/Br30fEIplIgCt4y/UGRK76Rqo4L/DuNjty3o2mcU8bICK5xfZwCeH7b5UFwdjngtp8VfhKPtosZmCuWvMn+y9HoS06ll9cdI1FPLN9w7KwMZFY8UzTc+0GfAwntxzlowAwkPhQ==

要模拟技能的启动,使用此正文

{
  "session": {
    "sessionId": "SessionId.test",
    "application": {
      "applicationId": "amzn1.ask.skill.place-your-skill-id-here"
    },
    "attributes": {},
    "user": {
      "userId": "amzn1.ask.account.test"
    },
    "new": true
  },
  "request": {
    "type": "LaunchRequest",
    "requestId": "EdwRequestId.test",
    "locale": "de-DE",
    "timestamp": "2017-01-26T20:38:55Z"
  },
  "version": "1.0"
}

要测试HelloIntent,使用此正文

{
  "session": {
    "sessionId": "SessionId.test",
    "application": {
      "applicationId": "amzn1.ask.skill.place-your-skill-id-here"
    },
    "attributes": {},
    "user": {
      "userId": "amzn1.ask.account.test"
    },
    "new": true
  },
  "request": {
    "type": "IntentRequest",
    "requestId": "EdwRequestId.test",
    "locale": "de-DE",
    "timestamp": "2017-01-27T20:29:59Z",
    "intent": {
      "name": "HelloIntent",
      "slots": {}
    }
  },
  "version": "1.0"
}

配置

请仔细查看这些配置文件以激活签名验证和请求日志功能。

  • /config/autoload/phlexa.config.global.php
  • /config/autoload/phlexa.config.development.php

在Docker中开发

这里有一个可用于本地开发的docker文件。您的本地代码也将挂载到docker容器中。要访问服务器,请在浏览器中输入 "http:://"。

  • 安装docker(参见:https://docs.dockerd.com.cn/install/
  • 运行 "docker-compose up -d" 命令
  • 安装供应商包 "docker exec phlexa-mezzio-skeleton_php-apache_1 composer install"
  • 在浏览器中打开 "https://"

提示:这些docker文件中还包含了一个maria db服务器。您可以在文件 "./mariadb/Dockerfile" 中找到用户名和密码。maria db不是运行骨架应用所必需的。如果您不想创建maria db,请修改dockerfile。