かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

LINE Clova のスキルと Windows 10 の連携

LINE Clova にアカウントリンキングの機能があるので、割と簡単に特定サービスと連携したスキルが作れます。 今回は、これを利用して Microsoft Graph API にある Project Rome を叩いて Windows 10 のアプリを起動してみました。

動作してる様子はこちら。

youtu.be

概要

マイクロソフトアカウントでログインするアプリを作るには以下のサイトからアプリを登録して行います。

Sign in to your Microsoft account

そうするとクライアント ID とクライアントシークレットなどが取得できるので、それを元に Clova の Extension のページに設定します。 わかりにくい点としてはログイン URL とアクセストークン URI が以下の値だというところでしょうか。

  • ログイン URL
    • https://login.microsoftonline.com/common/oauth2/v2.0/authorize
  • アクセストークン URI
    • https://login.microsoftonline.com/common/oauth2/v2.0/token

アプリとしては管理画面用の Web アプリと、Clova の Extension のスキル設定に登録するアプリの 2 つを設定しています。

ここから Microsoft Graph API のユーザー情報(ユーザー単位で情報を格納するためのキーとしてユーザー ID を使用してる)と Project Rome の API を叩いています。Project Rome の API にはデバイスの列挙(設定画面で使用)と指定したデバイスに対して URL でアプリを起動する API などが提供されています。

起動したアプリに対してコマンドを送ったりも出来るので、もうちょっと頑張れば自作のアプリが Clova から操作できるといったことも可能です。

クロスデバイス エクスペリエンス - ドキュメント - Microsoft Graph

Project Rome は次期 Windows 10 アップデートの October 2018 Update で公開されるはずの Your Phone というリンクした携帯電話と PC とでファイル転送したりメッセージやりとりしたりするアプリの裏で使われてる仕組みです。 ここで紹介した通り Microsoft Graph API としても提供されているので、別に電話以外のデバイスでもマイクロソフトアカウントでログインしてアクセストークンが取れるものからなら、何でも連携することが出来るようになっています。

ソースコード

ソースコードは以下の GitHub で公開しています。

github.com

手を抜いている所

現在、設定画面で設定した対象デバイスはオンメモリで持っているので、アプリの再デプロイとか再起動のタイミングでロストしていまいます。 本来は何かしらのデータベースに登録するなりしないといけません。

まぁ、今回は試してみるためだけに DB 用意するのがめんどくさかったので。

まとめ

スマートスピーカーが家電とかと連携するのはよく見るけど身近な Windows 10 の PC とも連携可能(しかも Microsoft Graph API なので自分で連携の仕組みを別途作らなくてもいい)ということを紹介したかったのでやってみました。

是非、チャレンジしてみてね!