codecommerce/alexaapi 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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 我们能提供哪些服务?
定制开发 / 二次开发

基于 codecommerce/alexaapi 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 33
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 11
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2018-10-19