phoice / phlexa-expressive-skeleton
该软件包已被放弃且不再维护。未建议替换软件包。
使用 phlexa、PHP 和 Mezzio 构建亚马逊 Alexa 语音应用的骨架应用程序。
3.0.0
2020-02-22 16:16 UTC
Requires
- php: ^7.1
- ext-json: *
- laminas/laminas-component-installer: ^2.1.1
- laminas/laminas-config-aggregator: ^1.0
- laminas/laminas-dependency-plugin: ^1.0
- laminas/laminas-diactoros: ^1.7.1
- laminas/laminas-servicemanager: ^3.3
- mezzio/mezzio: ^3.0.1
- mezzio/mezzio-helpers: ^5.0
- mezzio/mezzio-laminasrouter: ^3.0
- mezzio/mezzio-laminasviewrenderer: ^2.0
- phoice/phlexa: ^3.0.0
- phoice/phlexa-mezzio: ^3.0.0
- roave/security-advisories: dev-master
Requires (Dev)
- filp/whoops: ^2.1.12
- mezzio/mezzio-tooling: ^1.0
- phpunit/phpunit: ^7.0
- squizlabs/php_codesniffer: ^2.9.1
This package is auto-updated.
Last update: 2020-08-22 17:31:56 UTC
README
使用 phlexa、PHP 和 Mezzio 构建亚马逊 Alexa 语音应用的骨架应用程序。
依赖项
此骨架应用程序是用 Mezzio
构建的。有关 Mezzio
微框架的更多详细信息,请参阅官方 文档。
安装
使用 Composer 基于骨架应用程序简单地创建一个新项目
composer create-project phoice/phlexa-mezzio-skeleton name-of-your-project
您将获得什么
- 一个
Mezzio
应用程序设置,让您处理来自亚马逊 Alexa 的请求,并将您的响应发送回 Alexa。应用程序基于 phlexa 库 - 一个基于 phlexa 的 Alexa 应用程序,具有简单的
HelloIntent
以发送一些消息回用户。它甚至包含一个可立即使用的隐私页面。 - 一个文本辅助工具,用于处理 Alexa 应用程序的消息和技能的标题。
- 签名验证已内置。
- 请求日志也已为您设置。
简短教程
- 在亚马逊开发者门户网站上创建一个账户:https://developer.amazon.com/de/
- 切换到 Alexa 部分,选择 Alexa Skills Kit。 https://developer.amazon.com/edw/home.html#/skills
- 添加一个新的技能。
- 在技能信息中
- 选择 "自定义交互模型" 和一种语言
- 为您的技能输入名称 "Hello World" 和调用名称 "hello world"
- 保存
- 在交互模型上
- 启动技能构建器
- 添加一个名为 "HelloIntent" 的意图
- 添加 "hello world" 作为示例短语并按回车键
- 保存模型
- 构建模型
- 进行配置
- 选择 HTTPS 端点和选择一个地理区域
- 现在将服务器的 URL(见下文)复制为端点 URL。
- 保存
- 进行 SSL 证书
- 选择合适的选项。
- 保存
- 进行测试
- 现在您可以测试您的新技能了。
- 完成开发和测试技能后,填写发布信息和隐私与合规性部分。
有关更多详细信息,请参阅 文档。
设置您的服务器
要使用 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==
使用此body来模拟技能的启动
{
"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
,请使用此body
{
"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上开发
这里有一个您可以在本地开发中使用的Dockerfile。您的本地代码也将挂载到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。