Help us understand the problem. What is going on with this article?

3分でClovaスキル「サイコロトーク」を作ってみた

More than 1 year has passed since last update.

2018年7月12日にClova Extensions Kit(CEK)がリリースされました。
そこで簡単なスキルを3分で作ってみました。

作ったものはGoogle Homeでサイコロトークアプリを作ってみたと全く同じスキルです。
Clova Extensions Kitの基礎を知りたい方は@imajoririさんの記事が詳しいです。

完成動画

基本情報入力

LINE Developersでスキルチャネルを作成してください。
ざっくり基本情報はこのように埋めました。

s100.png

AWS Lambda関数作成

AWSのLambdaで関数を作成します。

s101.png

APIGateway作成

関数ができたら、APIGatewayを作成します。
トリガーの追加にあるAPI Gatewayをクリックします。

s102.png

新規APIの作成を行います。
埋めたら右下の[追加]ボタンをクリックします。

s103.png

右上の[保存]ボタンをクリックするとAPI GatewayのアクセスURLが発行されます。
この値をコピーしてClovaに貼り付けます。
s104.png

ExtensionサーバーのURLにLambdaでコピーした値を貼り付けます。

s105.png

プログラムを編集する

AWS Lambda画面のSaikoroSkillをクリックします。

s106.png

index.jsのコードを編集します。
編集したら右上の[保存]ボタンをクリックします。
s107.png

index.js
'use strict';

exports.handler = function (event, context, callback) {
    var response = {
        statusCode: 200,
        headers: {},
        body: ""
    };

    // 音楽再生先URL
    const url = `https://storage.googleapis.com/XXXXXXXXXXXXX.appspot.com/dice.mp3`;

    const wadai = ['情けない話。略して「なさばな」', 
                    '初めてまるまるした話。略して「はじまる」',
                    '信じられない話。「アンビリバボー!」',
                    '旬な話。「フレッシュ!」',
                    'シャレにならない話。略して「しゃればな」',
                    '今日の当たり目!。「おめでとー!おめでとー!」'];

    // ランダムで話題を選択する
    const wadaiIndex = Math.floor(Math.random() * wadai.length);
    const speechText = wadai[wadaiIndex];


    var responseJson = JSON.stringify({
        "version": "1.0",
        "response": {
            "outputSpeech": {
                "type": "SpeechList",
                "values": [
                    {
                        "type":"URL",
                        "lang":"",
                        "value": url
                    },
                    {
                        "type":"PlainText",
                        "lang":"ja",
                        "value": speechText
                    }
                ]
            },
            "card": {},
            "directives": [],
            "shouldEndSession": true
        }
    });

    response.body = responseJson;

    callback(null, response);

};

レスポンスの処理はコチラで確認してください。

まとめ

記事書く方が時間かかりましたが、実質3分で簡単なスキルが作成できました。
スキルを呼び出すためにはClovaの実機で「Clova、サイコロトークを開いて」と言えばスキルが実行されます。
ただ単純にしゃべらせるだけのスキルなら一瞬で作成することができます。
是非、皆様もスキルを作ってみましょう!

システム化のご検討やご相談は弊社までお問い合わせください。
https://i-enter.co.jp/contact/

h-takauma
様々なIoT機器の研究開発を行っています。 AWSの研究開発がメインです。LINE API Expert('19〜) 最近はスマートスピーカーに夢中です! 著書「スマートスピーカーアプリ開発入門」https://amzn.to/2o0KGWs
i-enter
「効果」をつねに提供します。スマホアプリ開発No.1の実績。最新のIoTに対応した開発も行います。
https://www.i-enter.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした