Local blog for Japanese speaking developers
Google アシスタント対応アプリを日本語で開発してみよう
2017年10月24日火曜日
Google アシスタント搭載のスマートスピーカー「Google Home」 と「 Google Home Mini」 の
日本発売開始
に合わせて、Google アシスタント対応アプリの開発環境も日本語でのアプリ開発に対応しました。そして、本日より、すべてのユーザーが日本語のアシスタントに対応したアプリを利用できるようになりました。
アシスタント対応アプリと Actions on Google
Actions on Google
は、サードパーティ デベロッパー向けの開かれたプラットフォームです。このプラットフォーム上で Google アシスタントに対応したアプリの開発が可能になります。これらのアプリは、Google アシスタント を通じて、Google Home や
Android
、また
iOS
など多くの環境でのサービス提供を実現します。
Actions on Google はこれまで英語環境(en_US, en_GB, en_AU)でのみ動作していましたが、日本語環境での利用も本日より対応を開始しました。
[1]
日本語で利用できるようになったアシスタント対応アプリを是非お試しください(五十音順)。
Ameba
SUUMO
絶対音感オーケストラ
食べログ
トクバイ
なみある?
日本史語呂合わせ
ベストティーチャー
ホットペッパーグルメ
Yahoo! MAP
楽天レシピ
アシスタント対応アプリの動作
アシスタントに対応したアプリは次のような流れで動作します(次の図はアシスタント対応アプリを Dialogflow をメインにして実装し、フォールバックを用意している場合)。
Google アシスタントで「OK Google, (アプリ名)と話す」と呼びかけたり入力すると、Actions on Google によって外部のアプリが起動します。起動後は、Google アシスタントがユーザーの入力情報を Google アシスタント対応アプリのエンドポイントに HTTP リクエストとして送ります(音声入力の場合は、Google アシスタントが音声認識したあとのテキストを送ります)。
Google アシスタントからのリクエストは JSON 形式で送られてくるので、受け取った入力情報を適宜サーバー側で処理し、JSON 形式でレスポンスを返すことで、ユーザーに情報を返すことができます。
アシスタント対応アプリの実装
この処理を見ると自前で JSON データの解析を行ったり、抽出したユーザーの入力情報を形態素解析して、それに応じた条件分岐を書く必要があることがわかります。それらを自前で実装するのはなかなかに大変な作業です。そこでその作業を軽減するために、
いくつかのツールを用意しました
。
[2]
Dialogflow(旧 api.ai)を利用する
Actions SDK を利用する
Dialogflow を利用すると自分でサーバーを用意することなく、アシスタント対応のアプリを作成できます。開発者はユーザの入力とそれに対応する応答のパターンを GUI 上で登録していくことで、簡単な会話型のアプリを作ることができます。またパターンに漏れたものや Dialogflow 上だけでは処理できない情報も、その後ろにフォールバック サーバーを設けることで対応できます。会話型エージェントシステムを作成する際に肝となる形態素解析の大部分を Dialogflow に任せることで、アプリの開発をより速く進めることが可能となります。
Actions SDK は Google アシスタントとの直接連携や Dialogflow のフォールバックを作成する際に必要な HTTP での JSON のやり取りを用意にするためのクライアント ライブラリです。現状では node.js 版が提供されています。定型句だけの対応であれば 直接 Actions SDK で連携して構いません。Dialogflow を利用する場合にも認証などが必要なときは Dialogflow のフォールバック先に Actions SDK を利用することで実装が容易になります。多くの
サンプル
も用意していますので、自分のユースケースにあったものを参考にしてください。
実装の詳細は Actions on Google の
開発者向けドキュメント
を参照してください。
アシスタント対応アプリの登録
アシスタントに対応したアプリの実装ができたら
Actions on Google 開発者コンソール
から登録してください。アプリ名、説明やアイコンなどのメタデータの登録が終わったら、シミュレーターや実機でテストができるようになります。詳細な手順は
Registering and Publishing Your App
のドキュメントでご確認ください。
開発アカウントでログインしている Google アシスタントであれば、テスト起動している間はシミュレーターだけでなく、実機でもアプリを起動できます。シミュレーターでは気が付かなかったようなユーザビリティ向上のためのヒントが見つかりますので、公開前には実機テストを行うことを強くおすすめします。
アプリの公開の準備が整ったら、開発者コンソール上にある「SUBMIT DRAFT FOR REVIEW」ボタンを押し提出してください。レビューが終わり、Versions の項目にある Status が「Published」となれば晴れて公開です。
一般公開されたアシスタント対応のアプリは
Assistant directory
から検索することができます。英語版ではすでにたくさんのアプリが公開されています。みなさんのアプリのヒントになるものもあるかと思います。
アプリを開発する中で不明点などありましたら、こちらの
フォーム
にて日本語での問い合わせください。同フォームの説明は英語ですが、日本語で入力いただけます。
[1]
ドイツ語(de-DE)、 フランス語(fr-FR)、日本語(ja-JP)、韓国語(kr-KR)、カナダでの英語とフランス語(en-CA、fr-CA)が同時に対応となりました。
[2]
テンプレートからの作成については、日本語対応していません。
Posted by
山口 能迪, Developer Advocate - Developer Relations
ラベル
.app
1
.dev
1
#11WeeksOfAndroid
13
#11WeeksOfAndroid Android TV
1
#Android11
3
#DevFest16
1
#DevFest17
1
#DevFest18
1
#DevFest19
1
#DevFest20
1
#hack4jp
3
11 weeks of Android
2
A/B Testing
1
A4A
4
Accelerator
3
Accessibility
1
Actions on Google
16
Activation Atlas
1
Addy Osmani
1
ADK
2
AdMob
32
Ads
67
Ads API
65
Advanced Protection Program
3
AdWords API
14
Agency
1
AI
13
AIY
3
AIY Vision Kit
2
ALPN
1
AMP
116
AMP Cache
9
AMP Camp
2
AMP CSS
1
AMP Extension
1
AMP Fest
1
AMP for Email
4
AMP Optimizer
1
AMP Packager
1
AMP Playground
1
AMP Plugin
1
AMP SSR
1
AMP Story
4
AMP Toolbox
1
amp-bind
1
amp.dev
1
AMPHTML Ads
1
Analytics
9
Andorid
12
Android
393
Android 10
1
Android 11
20
Android 11 Compatibility
1
Android 11 final release
1
Android 11 meetups
1
Android 9
1
Android App Bundle
1
Android App Development
23
Android Architecture
1
Android Architecture Components
1
Android Auto
1
Android Design Support Library
1
Android Developer
14
Android Developer Story
4
Android Developers
13
Android Enterprise
5
Android for cars
2
Android Go
1
Android Jetpack
6
Android N
18
Android O
14
Android Open Source Project
1
Android P
7
Android Pay
1
android privacy
1
Android Q
13
android security
2
Android Security Year in Review
1
Android Studio
47
Android Studio 4.1
1
Android Support Library
6
Android Things
15
Android Tools
2
Android TV
11
Android Vitals
4
Android Wear
29
android11
6
androidmarket
3
androidstudio
1
AndroidX
6
Angular
2
Angular 2
2
AngularJS
2
Anthos
2
AoG
1
aosp
1
API
26
APIExpert
45
apk
2
APM
1
app
3
App Action
1
App Bundle
2
app engine
23
App Indexing
7
App Invites
6
App Maker
2
AppCompat
2
Apps Flutter eBay
1
Apps Script
11
aprilfool
4
AR
2
Architecture Components
7
ARCore
1
ArtTech
1
Associate Android Developer Certificate
1
Audio
7
Auth Code
1
Authentication
9
AuthSub
2
Autofill
4
AutoML
1
Autotrack
2
award
1
Awareness API
1
Beacons
6
bento
1
BERT
1
Best Practices
1
Better Ads Standards
3
BigQuery
10
Billing
1
Biometrics
1
BLE
4
Blink
1
Blockly
1
blogger
1
BodyPix
1
Brillo
1
Brotli
2
Budou
1
Buildbetterapps
2
Calendar
3
campaign
1
Campus
1
Canvas
1
Cardboard
4
Career
1
Case Study
2
CCPA
1
CDS 2020
3
CDS Recap 2020
3
Certificate
2
chrome
188
Chrome Custom Tab
4
Chrome Dev Summit
5
chrome extension
14
Chrome for Android
2
Chrome for iOS
3
Chrome OS
7
Chrome Tech Talk Night
4
Chromebook
4
Chromecast
7
chromewebstore
9
Chromium
7
CLI
1
ClientLogin
3
Closure Compiler
1
Cloud
23
Cloud AI Platform
1
Cloud Firestore
5
Cloud Functions
9
Cloud IoT Device SDK
1
Cloud Next
9
Cloud OnAir
3
Cloud OnBoard
4
Cloud PubSub
1
Cloud Storage
1
Cloud Study Jams
3
Cloud Summit
1
Cloud Test Lab
2
Cloudflare
1
CNN
1
Coalition for Better Ads
2
CocoaPods
1
code review
1
codejam
5
codelab
5
Codepen
1
Colaboratory
1
Community
5
compatibility
1
Compose
1
compute engine
3
Contests
1
Context
1
controls
1
Conversation API
1
conversations
2
conversion
1
Cookie
10
Coral
2
COVID-19
2
Crash Reporting
2
Crashlytics
2
Custom Element
1
Custom Model
1
CWV
1
dark theme
1
Dart
2
DataCenter
1
Daydream
4
Deep Learning
4
Delegation
1
Demo Party
1
Design Patterns
1
Design Sprint
3
DesignBytes
1
Designer
1
DevArt
3
DevBytes
6
Developer
14
Developer Console
4
Developer Preview
6
Developer Relations
2
Developer Review
1
Developers Story
4
DevFest
10
DevFestX
3
DevOps
1
devtools
4
Dialogflow
1
Differential privacy
1
Digital Goods API
1
DirectShare
1
Discover
1
DNS-over-HTTPS
4
Domain
1
Doodle
1
DoubleClick
4
Doze モード
1
drive
2
DX
1
Dynamic Links
3
EarlGrey
1
Easter Egg
1
ECMAScript 2015
1
Eddystone
4
Edge
1
egypt
1
Encryption
1
English
2
Envoy
1
error
1
ES2015
1
ES2016
1
ES6
2
ES7
1
Event
6
Featured
25
FIDO
5
filter
1
final release
1
Firebase
120
Firebase Admin SDK
6
Firebase Analytics
10
Firebase Auth
4
Firebase Cloud Messaging
10
Firebase Crashlytics
2
Firebase Database
5
Firebase Libraries
1
Firebase Notifications
1
Firebase Performance
3
Firebase Remote Config
6
Flash
1
Flutter
6
Flutter App Development
1
font
3
fraud
1
G Suite
19
game
42
Game Developers Conference 2018
1
Game Developers Conference 2019
1
Gboard
1
GCP
17
GCPUG
1
GDC
1
GDD11JP
56
GDD2010JP
23
GDE
2
GDG
21
GDG Cloud
1
Geo
55
Gingerbread
1
GLIDE
5
Gmail
5
Gmail API
2
Go
1
golang
5
goo.gl
1
Google
7
Google Analytics
3
Google API
1
Google Apps
14
Google Apps Script
4
Google Assistant
10
Google Assistant SDK
2
Google Cast
8
Google Cloud
34
Google Cloud Day
4
Google Cloud INSIDE Digital
2
Google Cloud INSIDE Games & Apps
8
Google Cloud INSIDE Media
1
Google Cloud INSIDE Retail
3
Google Cloud Messaging
11
Google Cloud Platform
16
Google Code-in
1
Google Developer Experts
2
Google Developers Academy
1
Google Developers live
5
Google Developers Summit
2
Google Drive
6
Google Earth
1
Google Fit
2
Google for Games
2
Google for Mobile
2
Google for Startups
4
Google for Work
1
Google I/O
17
Google Impact Challenge
1
Google Maps
62
Google Maps Platform
50
Google ML Summit
2
Google Open Source Peer Bonus
1
Google Pay
4
Google Photo
1
Google Play
147
Google Play App Safety
1
Google Play Billing
1
Google Play Console
15
Google Play developer distribution agreement
1
Google Play Developer Policies
2
Google Play Game Services
10
Google Play Instant
1
Google Play Services
23
Google Play Store
1
Google Play アプリ署名
1
Google Plus
14
Google Search
7
Google Sheets API
3
Google Sign-In
12
Google Slides API
5
Google Summer of Code
1
Google Tag Manager
1
Google Trust Services
2
Google マップ
4
Google+
2
Googleapps
10
GoogleGames
1
GoogleI/O
28
GoogleLabs
1
GooglePlay
3
GoogleTV
1
GPS
1
Gradle
1
gRPC
2
GTUG
5
GWT
2
hack4jp
2
hackathon
7
Hangouts Chat
2
Hosting
3
hotel
1
HTML5
17
HTML5Rocks
1
HTTP/2
5
HTTPS
14
I/O Extended
4
ID Token
1
Identity
15
Identity Toolkit
1
IGF2010
4
IGF2020
2
Ignite
4
IME
11
Indie Game
7
Indie Games Festival
7
Indie Games Festival 2018
2
Indie Games Festival 2019
12
Indie Games Festival 2020
7
Inevitable ja Night
30
Insights
1
Instagram
1
Instant Apps
6
intern
2
Invites
1
IO19
3
iOS
22
IoT
7
IPv6
1
Issue Tracker
2
IWD
1
Japanese
6
Japanese Developer
1
Japanese Input
1
JavaScript
11
Jetpack
5
Jetpack Compose
3
K-12
1
Key Transparency
1
Knowledge Graph
1
Kotlin
24
Kotlin Android Extensions
1
Kotlin Beginners
3
Kotlin Vocabulary
2
Kubernetes
2
l10n
8
latest
18
latest news
1
LaunchPad
2
lifull
1
Lighthouse
1
LINE
1
Local AI
1
Location
1
Lollipop
10
Machine Learning
29
MAD Skills
2
MADSkills
2
Maker Faire Tokyo
1
Marshmallow
10
Material
1
Material Design
31
MDL
1
MDN
1
metrics
1
MIDI
2
mikan
1
Mixed Contents
4
ML
1
ML Kit
12
Mobile
15
Mobile Bootcamp
4
Mobile Sites certification
1
Mobile Vision
4
mod_pagespeed
1
Model Maker
1
monetization
2
monetize
3
Mozc
15
Music
1
NativeDriver
2
NativeScript
1
Navigation
1
NBU
1
ndk
3
Nearby
5
News
1
Next Extended
1
Next Tokyo
3
Nexus
2
Nexus S
1
NFC
1
Node.js
3
notifications
2
Noto CJK
1
Now in Android
13
NPAPI
2
NPN
1
oauth
12
open source
1
OpenAI
1
opencensus
1
OpenGL
4
OpenID
3
OpenID Connect
4
OpenSocial
1
opensource
18
OpenTitan
1
Optimization
1
Page Experience
1
Password Manager
2
Payment
8
Payment Handler API
1
Payment Request API
1
PDF
1
PEM
33
people
2
People API
3
Performance
14
Performance budget
1
permissions
1
PersonFinder
1
Physical Web
3
Pi
1
Pixel
1
Place Picker
1
Platform Stability
1
Play Billing
2
Play Billing Library
2
Play Console
2
Player Analytics
4
Playtime 2017
1
Policy
8
policy compliance
2
policy violations
2
Polymer
7
pricing
1
privacy
13
Privacy Sandbox
15
Progressive Web Apps
14
project hosting
1
Promise
1
Promo code
1
Protocol Buffers
1
PRPL
1
publicdata
1
Push API
1
Push Notification
6
PWA
3
Python
2
QUIC
2
QWIKLABS
3
RAIL
1
React
1
React Native
2
Realtime Database
9
Recap Live Japan 2019
3
reCaptcha
1
Redux
1
release
2
Remote Config
3
Remote Display API
1
Requirements
1
Resonance Audio
1
Rewarded Video Ads
2
Runtime Permission
1
Safe Browsing
3
safety
1
Sample Code
2
Santa Tracker
1
schema.org
1
script
1
secur
1
security
71
Service Worker
4
SHA-1
1
sketchup
1
SmartLock for Passwords
4
social
4
Social Good
1
Social Media
1
software development
1
SPDY
3
speak2tweet
1
Spreadsheet
3
SSR
1
stable release
1
startup
7
Storage
2
story
2
streetview
3
Study Jams
9
subscriptions
5
sunset
1
Swift
2
SwiftShader
1
Symantec
1
tag
1
tapple
1
Task
4
Team Drive
1
techtalk
13
TensorFlow
41
TensorFlow Federated
1
TensorFlow Lite
8
TensorFlow Object Detection API
1
TensorFlow Probability
2
TensorFlow.js
4
test
4
Test Lab
6
TF Certificate
2
TFX
1
TLS
1
ToS
1
trace
1
Transliteration
1
Trusted Web Activity
1
Twitter
1
Udacity
20
Unity
3
update
1
UX
5
v3
1
v6.1
1
V8
3
VP9
1
VR
11
Vulkan
2
Watch Face
2
wave
2
Wear OS
3
Weave
1
Web
34
Web Animations
1
Web Components
7
Web Manifest
1
Web Packaging
3
Web Stories
2
Web Story
3
Web Vitals
5
web.dev
1
WebAssembly
5
WebGL
1
WebM
1
WebMusic
5
WebRTC
1
WebView
1
Women Techmakers Scholars Program
1
Wordpress
1
workmanager
1
WTM
6
Xcode
1
YouTube
17
YouTube API
1
インタビュー
1
コードサンプル
1
プライバシー
1
機械学習
3
言論の自由
1
節電
3
定期購入
1
東日本大震災
9
日本語入力
41
ブログ アーカイブ
2021
3
2
1
2020
12
11
10
9
8
7
6
5
4
3
2
1
2019
12
11
10
9
8
7
6
5
4
3
2
1
2018
12
11
10
9
8
7
6
5
4
3
2
1
2017
12
11
10
9
8
7
6
5
4
3
2
1
2016
12
11
10
9
8
7
6
5
4
3
2
1
2015
12
11
10
9
8
7
6
5
4
3
2
2014
12
11
10
9
8
7
6
5
4
3
2
1
2013
12
11
10
9
8
7
6
5
4
3
2
1
2012
12
11
10
9
8
7
6
5
4
3
2
1
2011
12
11
10
9
8
7
6
5
4
3
2
1
2010
12
11
Feed
Follow @googledevjp
"プロダクトに関するご意見は
プロダクトフォーラム
にお願いします"