PHP code example of syousoufov / alexa-skills-php
1. Go to this page and download the library: Download syousoufov/alexa-skills-php library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
syousoufov / alexa-skills-php example snippets
// ..etc
/*
* Third Party Service Providers
*/
AlexaPHP\Providers\AlexaServiceProvider::class,
// ..etc
/**
* The application's route middleware.
*
* @var array
*/
protected $routeMiddleware = [
'alexa' => \AlexaPHP\Middleware\AlexaRequestMiddleware::class,
];
$router->group(
['middleware' => ['alexa'],], function (Router $router) {
$router->post('alexa', 'AlexaSkillsController@handleAlexaRequest');
});
namespace App\Http\Controllers;
use AlexaPHP\Request\AlexaRequestInterface;
use AlexaPHP\Request\IntentRequest;
use AlexaPHP\Request\LaunchRequest;
use AlexaPHP\Request\SessionEndedRequest;
use AlexaPHP\Response\ResponseInterface;
class AlexaSkillsController extends Controller
{
/**
* Handle Alexa requests
*
* @param \AlexaPHP\Request\AlexaRequestInterface $alexa_request
* @param \AlexaPHP\Response\ResponseInterface $response
* @return array
*/
public function handleAlexaRequest(AlexaRequestInterface $alexa_request, ResponseInterface $response)
{
// Pass to its appropriate handler
$method = camel_case($alexa_request->requestType());
return $this->$method($alexa_request, $response);
}
/**
* Handle a launch request
*
* @param \AlexaPHP\Request\LaunchRequest $alexa_request
* @param \AlexaPHP\Response\ResponseInterface $response
* @return array
*/
public function launchRequest(LaunchRequest $alexa_request, ResponseInterface $response)
{
return $response->say('LaunchRequest handled.');
}
/**
* Handle an intent request
*
* @param \AlexaPHP\Request\IntentRequest $alexa_request
* @param \AlexaPHP\Response\ResponseInterface $response
* @return array
*/
public function intentRequest(IntentRequest $alexa_request, ResponseInterface $response)
{
$intent = $alexa_request->getIntent();
return $response->say("$intent handled.");
}
/**
* Handle a session end request
*
* @param \AlexaPHP\Request\SessionEndedRequest $alexa_request
* @param \AlexaPHP\Response\ResponseInterface $response
* @return array
*/
public function sessionEndedRequest(SessionEndedRequest $alexa_request, ResponseInterface $response)
{
return $response->endSession()->say('SessionEndedRequest handled.');
}
}
/**
* Handle an intent request
*
* @param \AlexaPHP\Request\IntentRequest $alexa_request
* @param \AlexaPHP\Response\ResponseInterface $response
* @return array
*/
public function intentRequest(IntentRequest $alexa_request, ResponseInterface $response)
{
$intent = $alexa_request->getIntent();
return $response->say("$intent handled.");
}
/**
* Handle an intent request
*
* @param \AlexaPHP\Request\IntentRequest $alexa_request
* @param \AlexaPHP\Response\ResponseInterface $response
* @return array
*/
public function intentRequest(IntentRequest $alexa_request, ResponseInterface $response)
{
$intent = $alexa_request->getIntent();
$card = new Card([
'type' => 'Simple',
'title' => 'SomeTitle',
'content' => "Handled $intent!",
'text' => 'SomeText',
'image' => [
'smallImageUrl' => 'http://someimg.com/url.jpg',
'largeImageUrl' => 'http://someimg.com/urlx2.jpg',
],
]);
$card->content; // Handled TestIntent!
return $response->card($card);
}
/**
* Handle an intent request
*
* @param \AlexaPHP\Request\IntentRequest $alexa_request
* @param \AlexaPHP\Response\ResponseInterface $response
* @return array
*/
public function intentRequest(IntentRequest $alexa_request, ResponseInterface $response)
{
$intent = $alexa_request->getIntent();
return $response->reprompt("$intent handled.");
}
/**
* Handle an intent request
*
* @param \AlexaPHP\Request\IntentRequest $alexa_request
* @param \AlexaPHP\Response\ResponseInterface $response
* @return array
*/
public function intentRequest(IntentRequest $alexa_request, ResponseInterface $response)
{
return $response->reprompt("<speak>This output speech uses SSML.</speak>", ResponseInterface::TYPE_SSML);
}
/**
* Handle Alexa requests
*
* @param \AlexaPHP\Request\AlexaRequestInterface $alexa_request
* @param \AlexaPHP\Response\ResponseInterface $response
* @return array
*/
public function handleAlexaRequest(AlexaRequestInterface $alexa_request, ResponseInterface $response)
{
$request_type = $alexa_request->requestType();
$session = $alexa_request->getSession();
$session_will_expire = $session->expiring();
$user = $session->user();
$attributes = $session->getAttribute('some.attribute');
$verifier = $alexa_request->getVerifier();
$lets_check_again = $verifier->verifyTimestamp();
if (! $lets_check_again) {
throw new AccessDeniedHttpException("Naughty, naughty");
}
return $response->say('I did stuff!');
}