codecommerce/alexaapi
Composer 安装命令:
composer require codecommerce/alexaapi
包简介
Amazon Alexa Library
README 文档
README
composer require codecommerce/alexaapi
Creating directories and config files
Mac OS
mkdir -p Alexa/Config && cp vendor/codecommerce/alexaapi/Config/* Alexa/Config && mkdir Alexa/Intents
Windows
mkdir Alexa
cd Alexa
mkdir Config
mkdir Intents
xcopy ../vendor/codecommerce/alexaapi/Config ./Config /e /i /h
Projekt composer.json
Erstelle eine composer.json in deinem Projektordner. Fordere via require die AlexaApi an. Schreibe deinen Namespace in in autoload -> psr-4
{
"require": {
"codecommerce/alexaapi": "^1.0"
},
"autoload": {
"psr-4": {
"AlexaSpielwiese\\Alexa\\": "./Alexa"
}
}
}
Erster Intent
Erstelle eine Klasse und gebe den Namespace (siehe Projekt composer.json) an. Implementire das Interface 'IntentsInterface'. Übernehme die Methoden die das Interface vorraussetzt. Du kanns im Konstruktor die Variablen $sytem und $request auf eine Klassenvariable legen und somit überall verwenden.
<?php
namespace AlexaSpielwiese\Alexa\Intents;
use CodeCommerce\AlexaApi\Intents\IntentsInterface;
use CodeCommerce\AlexaApi\Model\Request;
use CodeCommerce\AlexaApi\Model\System;
class TestIntent implements IntentsInterface
{
protected $request;
protected $system;
/**
* IntentsInterface constructor.
* @param Request $request
* @param System $system
*/
public function __construct(Request $request, System $system)
{
$this->request = $request;
$this->system = $system;
}
/**
* @return mixed
*/
public function runIntent()
{
// TODO: Implement runIntent() method.
}
}
In der Methode runIntent passiert die ganze Magic.
Routing
Füge deine neue Klasse in das Routing ein.
Alexa/Config/routes.yml
Der Intent muss den gleichen Namen haben wie in der Developer Konsole bei Amazon
routes.yml
TestIntent: AlexaSpielwiese\Alexa\Intents\TestIntent
Die API macht nun den Rest und geht auf deinen hinterlegten Intent.
Prüfen auf Display
Du kannst dir das Display-Ausgabegerät vom $system zurückgeben lassen und somit prüfen ob es eine Displayunterstützung gibt.
$this->system->hasViewport()
Endpoint Konfigurieren
Die Datei die den Endpoint darstellt muss folgenden Aufruf erhalten
require __DIR__ . '/../vendor/autoload.php';
new CodeCommerce\AlexaApi\Controller\RequestHandler();
Hello World
Um eine Ausgabe zu erhalten nutzen Sie diese Methode
/**
* @return mixed
*/
public function runIntent()
{
$outSpeech = new Outspeech('Hello World');
$response = new Response($outSpeech);
(new ResponseHandler())->send($response);
}
Hintergrundbild hinzufügen
$backgroundImage = new BackgroundImage();
$backgroundImage->setSources('DEINE_URL');
$response = new Response($outspeech);
if ($this->system->getDisplay()) {
$template = new Template();
$template->setBackgroundImage($backgroundImage)
->setPrimary('Text 1')
->setSecondary('Text 2')
->setTertiary('Text 3')
->setType($template::BODY_TEMPLATE_2_IMAGE_LIMITED_CENTERED_TEXT);
$directive = new Directives();
$directive->setTemplate($template);
$response->setDirectives($directive);
}
codecommerce/alexaapi 适用场景与选型建议
codecommerce/alexaapi 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 33 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 10 月 19 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 codecommerce/alexaapi 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 codecommerce/alexaapi 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 33
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 11
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2018-10-19