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!');
	}