travello-gmbh / amazon-alexa-skill-skeleton
基于Zend\Expressive的Amazon Alexa技能PHP骨架应用
2.4.1
2018-01-29 09:13 UTC
Requires
- php: ^7.0
- http-interop/http-middleware: ^0.4.1
- travello-gmbh/amazon-alexa-skill-zf: ^2.1.0
- zendframework/zend-component-installer: ^1.0 || ^0.7.0
- zendframework/zend-config-aggregator: ^0.2.0
- zendframework/zend-expressive: ^2.0
- zendframework/zend-expressive-helpers: ^3.0.1
- zendframework/zend-expressive-zendrouter: ^2.0.1
- zendframework/zend-expressive-zendviewrenderer: ^1.3
- zendframework/zend-stdlib: ^3.1
- zendframework/zend-uri: ^2.5
Requires (Dev)
- filp/whoops: ^2.1
- phpunit/phpunit: ^6.0
- squizlabs/php_codesniffer: ^2.3
- zendframework/zend-expressive-tooling: ^0.3.1
This package is not auto-updated.
Last update: 2024-09-24 08:53:09 UTC
README
此项目已过时。请移至https://github.com/phoice/phlexa-expressive-skeleton
Amazon Alexa技能的PHP骨架应用
使用此PHP骨架应用,您可以轻松设置自己的基于PHP的Amazon Alexa技能。
依赖
此骨架应用是用Zend\Expressive
构建的。有关Zend\Expressive
微框架的更多详细信息,请参阅官方文档。
安装
使用Composer创建基于骨架应用的新项目
composer create-project travello-gmbh/amazon-alexa-skill-skeleton name-of-your-project
您将获得
- 一个为处理来自Amazon Alexa的请求并将响应发送回Alexa而设置的
Zend\Expressive
应用。该应用基于Amazon Alexa技能库 - 一个基于Amazon技能库的Alexa应用,包含一个简单的
HelloIntent
以发送消息回用户。它甚至包含一个准备就绪的隐私页面。 - 为Alexa应用提供文本助手以处理消息和技能的消息标题。
- 签名验证已内置。
- 请求日志也已为您设置。
小教程
- 在Amazon开发者门户创建账号:https://developer.amazon.com/de/
- 切换到Alexa部分并选择Alexa技能套件。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==
要模拟技能的启动,请使用此主体
{
"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/travello-alexa.config.global.php
/config/autoload/travello-alexa.config.development.php