Alexa Days 2017 で Alexa SkillのバックエンドにWordPressを使う話をしてきました

スライド https://speakerdeck.com/hideokamoto/wordpress-make-easier-to-create-alexa-skills https://speakerdeck.com/ […]

広告ここから
広告ここまで

目次

    スライド

    https://speakerdeck.com/hideokamoto/wordpress-make-easier-to-create-alexa-skills
    https://speakerdeck.com/hideokamoto/wordpress-make-easier-to-create-alexa-skills

    補足

    WordPressのデータをAlexaで扱う3つの方法

    現時点で把握してる内容では、以下の3つがあるかなと思います。

    • RSS
    • WP REST APIを直接呼び出す
    • LambdaからWP REST APIを呼び出す

    RSSを使う

    Alexa SkillはFlash Briefing Skillsに限ってですが、RSSフィードをよんでくれます。

    WordPressが出力するRSSはFlash Briefing Skillsで読み込むことができるので、極端な話これだけでAlexa Skillが作れてしまいます。

    方法などをまとめたスライドもありますので、こちらもどうぞ。
    https://speakerdeck.com/hideokamoto/flash-briefingshi-sitainara-wordpressshi-utoiiyo

    https://speakerdeck.com/hideokamoto/flash-briefingshi-sitainara-wordpressshi-utoiiyo

    これのデメリットはFlash Briefing Skillsしか使えないというところです。新着記事読み上げには使えますが、それ以外の用途を目指すならばある程度自力でコードを書いたりする必要があります。

    WP REST APIを直接呼び出す

    WordPressを触っている人にとって、おそらく一番とっつきやすい方法がこちらです。
    WordPress4.7以降で利用できる「WP REST API」を使うことで、Alexaでのやりとりに必要なレスポンス処理を作り上げるというものです。

    AlexaWPというプラグインがGitHubにありますので、こちらを使うことでもエンドポイントの追加はできます。

    ただ、これらを使った場合には「全てのレスポンスをWordPressで定義する必要がある」という問題もでてきます。

    あいさつやお礼など、WordPressのデータを必要としないやりとりについてもWordPressにリクエストが発生してしまいますので、WordPressがSPOFになってしまう場合もあるかなと思います。

    LambdaからWP REST APIを呼び出す

    最後の方法は、間にAWS Lambdaを挟むという方法です。
    Node.jsであれば、Alexa teamがalexa-sdkというライブラリが提供されています。

    こちらを使用し、WPのデータを参照したい時のみWordPressのAPIにリクエストを出すという方法を取ることで、他のAPIを呼び出したい時などの柔軟性も確保できます。

    サンプルとして、Serverless Frameworkを組み合わせて音声ガイド的なものを作るものを作ってみました。

    https://github.com/hideokamoto/serverless-alexa-city-guide

    alexa-sdkを使うことで、レスポンスのJSONを自力で組み立てる必要がなくなるなど、より実装に集中することができるので、Node.jsが使える方は使わない手はないと思います。

    その他

    Pythonで実装したバージョンに興味がある方は、Alexa AMIMOTO Ninja skillというSkillがあります。

    GitHubにソースコードもありますので、ぜひ見てみてください。

    まとめ

    Alexa Skillはできることが多いので、とりあえず触ってみたい人にとって、何からしたらいいかわからない感があるかもです。
    そんな時はWordPressを使って、とりあえずFlash Briefing Skillsから遊んでみるというのも手かなと思います。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark