BLOG

R3 Cloud Journey

Hack & Tips

アカウントリンクを使ってAlexaとkintoneを連携する方法

2019-12-17

この記事は kintone Advent Calender 2019 の17日目です。

Amazon Echoとkintoneを連携し、音声でkintoneのデータを操作(取得や登録)する場合、以下の構成を採用する事が多いと思います。

なんとなく手書き


なんとなく手書き

Lambdaからkintoneへのアクセスは、kintoneのREST APIを使うので、認証情報をどこかに保持しておく必要があります。

管理者(Administrator)の権限でアクセスするのであれば、Lambdaの環境変数にでもkintoneのAPIトークンを持たせておけば良いのですが、kintoneの個々のユーザー権限で実行したい場合もあると思います。
(アプリにレコードのアクセス権を設定していて、自分のレコードだけを見えるようにしている場合とか)

そのような時に便利に使える、アカウントリンクという便利機能がAlexaにはあります。(Cookpadのスキルとかでも使われてるやつです)

アカウントリンクを有効にする

以下の手順でアカウントリンクの設定を行うと、Amazon Echo(Amazonアカウント)とkintoneのユーザーを紐付ける事ができます。

  1. スマホのAlexaアプリで、スキルを有効にする
スキルを有効化する


スキルを有効化する

2. kintoneのログイン画面が表示されるので、自分のログイン名・パスワードでログインする

3. 操作を許可する画面(認可画面)が表示されるので、許可を選択する

認可画面


認可画面

4. 正常にリンクされました、が表示されたら紐付けが完了

設定完了


設定完了

cybozu.com共通管理の設定

OAuth 2.0を使うには、「OAuthクライアントの使用」の手順で、cybozu.com共通管理の設定が必要です。
(この場合はAlexaがOAuthクライアントとなります)

設定例を貼っておきます。

cybozu.com共通管理の設定


cybozu.com共通管理の設定

alexa developer consoleの設定

Alexaにも設定が必要となるので、alexa developer consoleのスキル設定の画面からアカウントリンクのメニューを選び、以下のように設定します。

Lambdaからkintoneへのアクセス

ここまで設定すると、AlexaからLambdaに対して、kintoneのユーザーごとの認証情報(OAuth 2.0のアクセストークン)が送られてくるので、アクセストークンを使ってkintoneのREST APIを実行すれば、ユーザーの権限でAPIが実行されます。

Lambdaでログを出力してみたところ、アクセストークンが取得できている事が分かります。

Alexaのドキュメントに記載がある通り、context.System.user.accessToken でアクセストークンを取得する事ができます。

ここまで設定しておいて残念な事

ただ、非常に残念な事もあり、設定画面を見て分かるように、kintoneの認可エンドポイントとトークンエンドポイントは、サブドメインに依存したURIになっています。

そのURIをAlexaスキルに設定するので、Alexaスキルとkintoneのサブドメインが1:1で紐付いてしまう事になります。

というわけで、アカウントリンクを使ったAlexaスキルは、現時点ではスキルストアへの公開ができないと思われます。(汎用的に使えないので)

実はある取り組みで作成したスキルは、スキルストアへの公開ができないのでベータテスト機能を使っています。。。

日本でもAlexa for Businessが使えるようになるか、cybozu.com共通管理が強化される日まで待ちましょう。

kintoneを活用したシステム開発(だけ)をやってます。kintoneエバンジェリストもやってます。祇園祭と仮面ライダーが好きです。

自社のシステム開発・移行などをご依頼したい方
お客様とともに
作りながら考える
新しいシステム開発
詳しく見る
kintone導入・アプリ開発・カスタマイズにお困りの方
ノーコードでらくらく
kintoneカスタマイズ
詳しく見る
kintoneアプリの
バージョン管理・バックアップ
詳しく見る
kintoneアプリの開発・運用を
強力サポート

詳しく見る
更新情報をメールでお届けします!

kintoneアプリのカスタマイズに役立つ情報や、イベントの情報をメールでお届けいたします。
ご登録をお待ちしております!

R3のご提供サービス
自社のシステム開発・移行などを
ご依頼したい方
お客様とともに作りながら考える
新しいシステム開発
詳しく見る
kintone導入・アプリ開発・
カスタマイズにお困りの方
kintoneをもっと使いやすくする
gusukuシリーズ
詳しく見る
更新情報をメールでお届けします!
kintoneアプリのカスタマイズに役立つ情報や、イベントの情報をメールでお届けいたします。
ご登録をお待ちしております!