SlideShare a Scribd company logo
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 0
デバイスWebAPIによる
スマートフォン周辺デバイスの活用
2016/11/19更新版
株式会社NTTドコモ
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
2.デバイスWebAPIの色々な機能を試す
3.curlによるREST API動作確認
1
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
2.1 STEP:0 下準備
ルータ
パソコンAndroid端末
無線LAN
1.同一ネットワークのパソコンとAndroid端末を用意
デバイスコネクト
デモWebサイト
マネージャアプリ
HOSTプラグイン
次ページ以降で説明次ページ以降で説明
2
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 3
1. スマートフォンで”http://deviceconnectusers.github.io/manager/”にアクセス
2.2 STEP:1 Webサイトからのアプリインストール
機能検証用の
デモWebサイト
(STEP4以降)
2. デバイスWebAPIの利用に必要なファイルの
ダウンロード画面(Download APK)を開く
3. ManagerとHostプラグインをダウンロード、インストール
(Androidの設定⇒セキュリティから、「提供元不明のアプリ
のインストールを許可する」を有効にしておく)
Android画面
Android画面
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
2.3 STEP:2 パソコンから確認する準備
とりあえず試すために、マネージャアプリのセキュリティを無効にする
※セキュリティ設定の説明はまた別の機会に・・・
マネージャーアプリを開いてサーバ機能をオフにし、セキュリティ設定の外部IPのみを
有効にしてからサーバ機能をオンにする
IPアドレス
(ローカルNW)
Android画面
4
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
2.4 STEP:3 PCでデモ用Webサイトを開く
2. PCのWebブラウザで以下のURLを入力して開く
"http://deviceconnectusers.github.io/manager/?ip=[Android端末のIPアドレス]#demo"
※Android端末上で開く場合はSTEP:1のURLに#demoをつける
"http://deviceconnectusers.github.io/manager/#demo"
操作対象のIPアドレスとして
パラメータを付加
5
PC画面
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
2.5 STEP:4 デモ用Webサイトの動作確認:機能リストの表示
1.デモ画面でSearch Deviceを
選ぶとDevice ListにHostが
表示される。
2.Android端末の画面で
[同意する]を選ぶと
デモ画面に機能のリストが
表示される
PC画面
Android画面
PC画面
6
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
2.6 STEP:5.1 PC上の画像をAndroid端末で表示
PC画面
Android画面1.機能リストからcanvas、Canvas DrawImageを選択
2.ファイルを選択で画像を選択
3.mode:「最大化して画像描画」に変更してUploadを選択
4. 画像がAndroidの画面に表示される
①
①
②
②
③
③
④
7
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
2.7 STEP:5.2 Androidのカメラ映像をWebブラウザで表示
1.機能リストからmediastream_recording、Previewを選択
2.Webブラウザの画面にAndrpod端末のカメラ映像が表示される
PC画面
8
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
2.8 ブラウザで具体的なNWアクセス状況を確認
Chromeブラウザ上でデベロッパーツールを開く(CTRL+SHIFT+i)
9
PC画面
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
2.8 ブラウザで具体的なNWアクセス状況を確認
Networkタブのログを右クリックで利用可能
10
次章で
PC画面
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
2.デバイスWebAPIの色々な機能を試す
3.curlによるREST API動作確認
ハンズオン内容
11
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
3.1 REST APIを試す下準備
WebAPI(REST API)として利用できる=開発環境にも依存しない
⇒cURL(コンソールからHTTPリクエストが行えるツール http://curl.haxx.se/)により
動作を確かめます
※簡略化のために、セキュリティ無効設定を前提として進めます。
※現状のバージョンでは、セキュリティ動作の都合上、スライドP.37(2.5 STEP:4)の手順で、
プラグインの機能確認のダイアログで[同意する]を選んでいる必要があります
準備(Windowsの場合)
1.プログラムとファイルの検索で
”cmd”と入力してコンソールの起動
2.cURLをダウンロードしてフォルダを作成
“cd [フォルダの場所]”でcurl.exeのパスに移動
cmd[改行]
PC画面
12
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
デバイスWebAPIが使えるかどうかの確認(availability)
リクエスト
>curl -X GET http://192.168.13.6:4035/gotapi/availability
レスポンス
{"result":0,"product":"Device Connect Manager","name":"Manager-XX","uuid":“xxxx","version":"v2.1.0"}
利用できるデバイスリストの確認(servicediscovery)
リクエスト
>curl -X GET http://192.168.13.6:4035/gotapi/servicediscovery
レスポンス
{"product":"Device Connect Manager","result":0,
“services”:[{“id”:“「心拍数計のサービスID(利用環境から自動生成される文字列)」",
"config":"","type":"BLE","name":"MIO GLOBAL","online":true},
{“id”:“「Host(Android機能)のサービスID(利用環境から自動生成される文字列)」",
"scopes":["file_descriptor","phone","media_player","connect","settings","deviceorientation","canvas","authorization","proximity","system"
,"touch","file","serviceinformation","battery","mediastream_recording","keyevent","vibration","notification","servicediscovery"],
"config":"HostConfig","type":"Wifi","name":"Host","online":true}],"version":“2.0.0"}
>curl -X GET -H "Origin: http://localhost" http://192.168.13.6:4035/gotapi/servicediscovery
curlコマンド HTTP GET
Originの指定
(セキュリティ設定の
Originを有効化した場合)
AndroidのIPアドレス
4035ポートの利用はOMAで規定
3.2 REST APIで利用できる機能の確認
デバイスの名前
サービスID
※セキュリティ設定の Originを無効化している場合、curlを使わずにブラウザのアドレス欄からでも確認可能
13
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
3.3 REST APIで利用できる機能の確認
プラグインリストの確認(system)
リクエスト
>curl -X GET http://192.168.13.6:4035/gotapi/system
レスポンス
{"product":"Device Connect Manager","result":0,
supports":["files","system","authorization","servicediscovery","availability"],
"plugins":[{"packageName":"org.deviceconnect.android.deviceplugin.heartrate",
“id”:“「心拍数計のプラグインIDの文字列」",
"supports":["servicediscovery","serviceinformation","system","health"],
"name":"HeartRate(BLE) (Device Web API device plug-in)"},
{"packageName":"org.deviceconnect.android.deviceplugin.host",
“id”:“「HostのプラグインIDの文字列」",
"supports":["servicediscovery","serviceinformation","system","battery",
"notification","vibration","settings","deviceorientation","file",
"file_descriptor","proximity","connect","mediastream_recording",
"phone","media_player","proximity","canvas","keyevent","touch"
],
"name":"Host 2.0.0“
}
],
"version":"2.0.0“
}
プラグインの名前※2
プラグインID※2
※1 本体APIの“files”はシステム内部のプラグイン処理で、“authorization”はセキュリティ処理で利用のため省略
※2 ひとつのプラグインに複数のデバイスがあるため、プラグインID≠サービスID、プラグインの名前≠デバイスの名前となっている
本体のAPI※1
プラグインID※2
14
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
3.4 REST APIで利用できる機能の確認
指定したデバイスで使える機能の確認(serviceinformation)
リクエスト
>curl -X GET http://192.168.13.6:4035/gotapi/serviceinformation
?serviceId=「servicediscoveryで見つかったサービスIDの文字列」
レスポンス
{"product":"Device Connect Manager","result":0,
"supports":["file_descriptor","phone","media_player","connect","settings","deviceorientation",
"canvas","authorization","proximity","system","touch","file","serviceinformation","battery",
"mediastream_recording","keyevent","vibration","notification","servicediscovery"],
"supportApis":{"battery":{"swagger":"2.0","consumes":[],"info":{"description":"","title":"Battery Profile","version":"2.0.0"},
"paths":{
"¥/charging":{"get":{"responses":{"200":{"description":""}},"summary":"","description":"","x-type":"one-shot","parameters":[{"required":true,"in":"query","name":"serviceId","type":"string"}]}},
"¥/":{"get":{"responses":{"200":{"description":""}},"summary":"","description":"","x-type":"one-shot","parameters":[{"required":true,"in":"query","name":"serviceId","type":"string"}]}},
"¥/level":{"get":{"responses":{"200":{"description":""}},"summary":"","description":"","x-type":"one-shot","parameters":[{"required":true,"in":"query","name":"serviceId","type":"string"}]}}
}}(略)}(略)
"connect":{},"version":"2.0.0"}
利用できる
機能のリスト
プラグインの設定をする(system/device/wakeup)
リクエスト
>curl -X PUT http://192.168.13.6:4035/gotapi/system/device/wakeup
?pluginId=「systemで見つかったプラグインIDの文字列」
レスポンス
{"product":"Device Connect Manager","result":0,"version":"2.0.0"}
↑のようなプラグイン
の設定画面が開きます
15
↑ 具体的なAPI記述ルール(Swagger形式)
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
バッテリーの残量を知る
リクエスト
>curl -X GET http://192.168.13.6:4035/gotapi/battery
?serviceId=「servicediscoveryで見つかったサービスIDの文字列」
レスポンス
{“charging”:true,“product”:“Device Connect Manager","result":0,
"level":0.8700000047683716,"version":"2.0.0"}
3.5 REST APIとしての動作確認:機能の利用例
残り87%
Androidに通知を送る
リクエスト
>curl -X POST http://192.168.13.6:4035/gotapi/notification/notify
-F “serviceId=「servicediscoveryで見つかったサービスIDの文字列」"
-F "type=3" -F "body=%E3%83%86%E3%82%B9%E3%83%88"
レスポンス
{"product":"Device Connect Manager","notificationId":69699,"result":0,"version":"2.0.0"}
URLエンコードされた文字列(ここでは「テスト」を表している)
Android端末上に
通知が表示される
(通知の出方は環境依存)
サービスID
サービスID
Android画面
https://github.com/DeviceConnect/DeviceConnect-JS/wiki/2.13.Notification#notification_post
16
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved
ぜひご活用ください
・Webの標準的な技術のみで、デバイスアクセスのためのWebインターフェースを実現、
Webサイトから利用導線も用意できるのでプリインストールも不要
・仕様をOMAで標準化し、自由なライセンス(MIT)でオープンソース提供、コンテンツ開発や
デバイス対応のためのSDKも整備
・シンプルで手軽なHTTPでのアクセスから、セキュリティ対策を施したWebSocketによる
効率的なアクセスまで、目的に応じた機能アクセスが可能
http://hacklog.jp/apis/224/
17
Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 18
セキュリティに関するご案内
今回は簡単に利用するため、本来のセキュリティ機能を外しています。
今後利用しない場合は、アンインストールしてください。
・DeviceConnectManagerアプリを開く⇒「デバイスプラグイン管理」を選択⇒
「HOST(Device Connect ...)」を選択⇒削除ボタン
・DeviceConnectManagerアプリは通常のAndroidアプリと同様にアンインストール
利用する場合でも「DeviceConnectManager」の設定からManagerをOFFにし、
「外部IPを許可」を無効にしてください。

More Related Content

What's hot

最速・最短・最簡単でKubernetesを始めるハウツー with k0s
最速・最短・最簡単でKubernetesを始めるハウツー with k0s最速・最短・最簡単でKubernetesを始めるハウツー with k0s
最速・最短・最簡単でKubernetesを始めるハウツー with k0s
Kamon Nobuchika
 
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
LIFULL Co., Ltd.
 

What's hot (20)

「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
 
入門Ansible
入門Ansible入門Ansible
入門Ansible
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
Xamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターンXamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターン
 
Amazon FreeRTOSを用いた量産向けIoTマイコンデバイス開発プロトタイピング
Amazon FreeRTOSを用いた量産向けIoTマイコンデバイス開発プロトタイピングAmazon FreeRTOSを用いた量産向けIoTマイコンデバイス開発プロトタイピング
Amazon FreeRTOSを用いた量産向けIoTマイコンデバイス開発プロトタイピング
 
Oracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみるOracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみる
 
Arxan導入前後で変わったこと
Arxan導入前後で変わったことArxan導入前後で変わったこと
Arxan導入前後で変わったこと
 
AWS VM import / export ハンズオン
AWS VM import / export ハンズオンAWS VM import / export ハンズオン
AWS VM import / export ハンズオン
 
(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。
(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。
(資料更新)事前に準備できる方は本資料で環境準備していただけるとより理解が深まります。ご協力宜しく御願い致します。
 
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
 
最速・最短・最簡単でKubernetesを始めるハウツー with k0s
最速・最短・最簡単でKubernetesを始めるハウツー with k0s最速・最短・最簡単でKubernetesを始めるハウツー with k0s
最速・最短・最簡単でKubernetesを始めるハウツー with k0s
 
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
 
負荷分散だけじゃないELBのメリット
負荷分散だけじゃないELBのメリット負荷分散だけじゃないELBのメリット
負荷分散だけじゃないELBのメリット
 
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Zabbixで学ぶ統計解析入門
Zabbixで学ぶ統計解析入門Zabbixで学ぶ統計解析入門
Zabbixで学ぶ統計解析入門
 
バーチャルライブ配信アプリREALITYの3Dアバターシステムの全容について
バーチャルライブ配信アプリREALITYの3Dアバターシステムの全容についてバーチャルライブ配信アプリREALITYの3Dアバターシステムの全容について
バーチャルライブ配信アプリREALITYの3Dアバターシステムの全容について
 
Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例
 
Vault の鍵管理機構
Vault の鍵管理機構Vault の鍵管理機構
Vault の鍵管理機構
 

Viewers also liked

Web programming introduction
Web programming introductionWeb programming introduction
Web programming introduction
colun
 

Viewers also liked (9)

Web programming introduction
Web programming introductionWeb programming introduction
Web programming introduction
 
Webシステムプログラミング20150413
Webシステムプログラミング20150413Webシステムプログラミング20150413
Webシステムプログラミング20150413
 
Webプログラミング入門
Webプログラミング入門Webプログラミング入門
Webプログラミング入門
 
QAサイトをつくってみよう
QAサイトをつくってみようQAサイトをつくってみよう
QAサイトをつくってみよう
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会
 
Webの仕組みとプログラミング言語
Webの仕組みとプログラミング言語Webの仕組みとプログラミング言語
Webの仕組みとプログラミング言語
 
PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方
 
第4回 PHPのおさらい
第4回 PHPのおさらい第4回 PHPのおさらい
第4回 PHPのおさらい
 
40分濃縮 PHP classの教室
40分濃縮 PHP classの教室40分濃縮 PHP classの教室
40分濃縮 PHP classの教室
 

Similar to デバイス WebAPIによるスマートフォン周辺デバイスの活用

Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
dynamis
 
iPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶiPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶ
Kenichiro MATOHARA
 
ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit
三七男 山本
 

Similar to デバイス WebAPIによるスマートフォン周辺デバイスの活用 (20)

Swiftアプリにプッシュ通知を組み込もう!
Swiftアプリにプッシュ通知を組み込もう!Swiftアプリにプッシュ通知を組み込もう!
Swiftアプリにプッシュ通知を組み込もう!
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
 
デバイスコネクトWebAPIの開発状況について
デバイスコネクトWebAPIの開発状況についてデバイスコネクトWebAPIの開発状況について
デバイスコネクトWebAPIの開発状況について
 
デバイス WebAPI(GotAPI)とその活用事例のご紹介 - ワイヤレスジャパン2016
デバイス WebAPI(GotAPI)とその活用事例のご紹介 - ワイヤレスジャパン2016デバイス WebAPI(GotAPI)とその活用事例のご紹介 - ワイヤレスジャパン2016
デバイス WebAPI(GotAPI)とその活用事例のご紹介 - ワイヤレスジャパン2016
 
【18-E-2】Android6.0 対応! モバイルアプリセキュリティの最新トレンド
【18-E-2】Android6.0 対応! モバイルアプリセキュリティの最新トレンド【18-E-2】Android6.0 対応! モバイルアプリセキュリティの最新トレンド
【18-E-2】Android6.0 対応! モバイルアプリセキュリティの最新トレンド
 
はじめての980円ジャンクガラホ改造, UserLAndとTermuxでUbuntuなどLinux動作  Beginner for UserLAnd a...
はじめての980円ジャンクガラホ改造, UserLAndとTermuxでUbuntuなどLinux動作   Beginner for UserLAnd a...はじめての980円ジャンクガラホ改造, UserLAndとTermuxでUbuntuなどLinux動作   Beginner for UserLAnd a...
はじめての980円ジャンクガラホ改造, UserLAndとTermuxでUbuntuなどLinux動作  Beginner for UserLAnd a...
 
ニフティクラウド
 mobile backend とIoTの良い関係
ニフティクラウド
 mobile backend とIoTの良い関係ニフティクラウド
 mobile backend とIoTの良い関係
ニフティクラウド
 mobile backend とIoTの良い関係
 
VDC 5th - NTTドコモ ハンズオン資料
VDC 5th - NTTドコモ ハンズオン資料VDC 5th - NTTドコモ ハンズオン資料
VDC 5th - NTTドコモ ハンズオン資料
 
Firefox os hackathon
Firefox os hackathonFirefox os hackathon
Firefox os hackathon
 
MozOpenHardプロジェクトと そのコア技術について
MozOpenHardプロジェクトと そのコア技術についてMozOpenHardプロジェクトと そのコア技術について
MozOpenHardプロジェクトと そのコア技術について
 
iPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶiPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶ
 
SORACOM UG 九州 #1 | SORACOM アップデート!! ~since 2016/9/23~
SORACOM UG 九州 #1 | SORACOM  アップデート!! ~since 2016/9/23~SORACOM UG 九州 #1 | SORACOM  アップデート!! ~since 2016/9/23~
SORACOM UG 九州 #1 | SORACOM アップデート!! ~since 2016/9/23~
 
ビーコンをつかうIoTアプリケーション
ビーコンをつかうIoTアプリケーションビーコンをつかうIoTアプリケーション
ビーコンをつかうIoTアプリケーション
 
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
 
Edisonユーザ会「ニフティクラウド mobile backendとIoTの良い関係」
Edisonユーザ会「ニフティクラウド mobile backendとIoTの良い関係」Edisonユーザ会「ニフティクラウド mobile backendとIoTの良い関係」
Edisonユーザ会「ニフティクラウド mobile backendとIoTの良い関係」
 
Try Firefox OS
Try Firefox OSTry Firefox OS
Try Firefox OS
 
5jCup WebRTC賞
5jCup WebRTC賞5jCup WebRTC賞
5jCup WebRTC賞
 
kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
 
ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit
 

More from Device WebAPI Consortium

More from Device WebAPI Consortium (20)

IoTプラットフォーム「RouteZ(ルートジー)」のご紹介
IoTプラットフォーム「RouteZ(ルートジー)」のご紹介IoTプラットフォーム「RouteZ(ルートジー)」のご紹介
IoTプラットフォーム「RouteZ(ルートジー)」のご紹介
 
IoTを中心としたデジタルトランスフォーメーションが変える未来の働き方
IoTを中心としたデジタルトランスフォーメーションが変える未来の働き方IoTを中心としたデジタルトランスフォーメーションが変える未来の働き方
IoTを中心としたデジタルトランスフォーメーションが変える未来の働き方
 
NIDD (Non-IP Data Delivery) のご紹介
NIDD (Non-IP Data Delivery) のご紹介NIDD (Non-IP Data Delivery) のご紹介
NIDD (Non-IP Data Delivery) のご紹介
 
RT ミドルウェアの IoT プラットフォームへの適用
RT ミドルウェアの IoT プラットフォームへの適用RT ミドルウェアの IoT プラットフォームへの適用
RT ミドルウェアの IoT プラットフォームへの適用
 
LPWA Sigfoxネットワークとクラウド連携
LPWA Sigfoxネットワークとクラウド連携LPWA Sigfoxネットワークとクラウド連携
LPWA Sigfoxネットワークとクラウド連携
 
DeviceWebAPI and other standardization status of OMA CD WG
DeviceWebAPI and other standardization status of OMA CD WGDeviceWebAPI and other standardization status of OMA CD WG
DeviceWebAPI and other standardization status of OMA CD WG
 
APPS JAPAN 出展報告と小型心拍センサmyBeatシリーズの紹介~
APPS JAPAN 出展報告と小型心拍センサmyBeatシリーズの紹介~APPS JAPAN 出展報告と小型心拍センサmyBeatシリーズの紹介~
APPS JAPAN 出展報告と小型心拍センサmyBeatシリーズの紹介~
 
社会ニーズの解決を実現するIoTセンサ ~オムロンのセンシング技術~
社会ニーズの解決を実現するIoTセンサ ~オムロンのセンシング技術~社会ニーズの解決を実現するIoTセンサ ~オムロンのセンシング技術~
社会ニーズの解決を実現するIoTセンサ ~オムロンのセンシング技術~
 
第0回仕様策定サブWG会合報告 - 仕様作成プロセスについて
第0回仕様策定サブWG会合報告 - 仕様作成プロセスについて第0回仕様策定サブWG会合報告 - 仕様作成プロセスについて
第0回仕様策定サブWG会合報告 - 仕様作成プロセスについて
 
音声によるデバイスWebAPIの操作
音声によるデバイスWebAPIの操作音声によるデバイスWebAPIの操作
音声によるデバイスWebAPIの操作
 
デバイスWebAPI/Symphonyを軸としたIoTの展開について
デバイスWebAPI/Symphonyを軸としたIoTの展開についてデバイスWebAPI/Symphonyを軸としたIoTの展開について
デバイスWebAPI/Symphonyを軸としたIoTの展開について
 
スマートスピーカー Clova に至る LINE のメッセージングテクノロジー発展の系譜
スマートスピーカー Clova に至る LINE のメッセージングテクノロジー発展の系譜スマートスピーカー Clova に至る LINE のメッセージングテクノロジー発展の系譜
スマートスピーカー Clova に至る LINE のメッセージングテクノロジー発展の系譜
 
デジタルカメラEXILIM を使ったプラグイン開発と商用展開について
デジタルカメラEXILIM を使ったプラグイン開発と商用展開についてデジタルカメラEXILIM を使ったプラグイン開発と商用展開について
デジタルカメラEXILIM を使ったプラグイン開発と商用展開について
 
ドコモAIエージェントにおけるデバイスWebAPIの活用とサポートプログラムについて
ドコモAIエージェントにおけるデバイスWebAPIの活用とサポートプログラムについてドコモAIエージェントにおけるデバイスWebAPIの活用とサポートプログラムについて
ドコモAIエージェントにおけるデバイスWebAPIの活用とサポートプログラムについて
 
デバイスWebAPI実装のアップデートと利用事例について
デバイスWebAPI実装のアップデートと利用事例についてデバイスWebAPI実装のアップデートと利用事例について
デバイスWebAPI実装のアップデートと利用事例について
 
デバイス WebAPI設計の進め方
デバイス WebAPI設計の進め方デバイス WebAPI設計の進め方
デバイス WebAPI設計の進め方
 
IoTに最適なセキュアなVPN通信のご紹介
IoTに最適なセキュアなVPN通信のご紹介IoTに最適なセキュアなVPN通信のご紹介
IoTに最適なセキュアなVPN通信のご紹介
 
クラウド連携版デバイスWebAPI
クラウド連携版デバイスWebAPIクラウド連携版デバイスWebAPI
クラウド連携版デバイスWebAPI
 
RaspberryPi(OSH)の産業利用の現状
RaspberryPi(OSH)の産業利用の現状RaspberryPi(OSH)の産業利用の現状
RaspberryPi(OSH)の産業利用の現状
 
デバイスコネクト活用事例紹介
デバイスコネクト活用事例紹介デバイスコネクト活用事例紹介
デバイスコネクト活用事例紹介
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 

Recently uploaded (11)

【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 

デバイス WebAPIによるスマートフォン周辺デバイスの活用

  • 1. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 0 デバイスWebAPIによる スマートフォン周辺デバイスの活用 2016/11/19更新版 株式会社NTTドコモ
  • 2. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 2.デバイスWebAPIの色々な機能を試す 3.curlによるREST API動作確認 1
  • 3. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 2.1 STEP:0 下準備 ルータ パソコンAndroid端末 無線LAN 1.同一ネットワークのパソコンとAndroid端末を用意 デバイスコネクト デモWebサイト マネージャアプリ HOSTプラグイン 次ページ以降で説明次ページ以降で説明 2
  • 4. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 3 1. スマートフォンで”http://deviceconnectusers.github.io/manager/”にアクセス 2.2 STEP:1 Webサイトからのアプリインストール 機能検証用の デモWebサイト (STEP4以降) 2. デバイスWebAPIの利用に必要なファイルの ダウンロード画面(Download APK)を開く 3. ManagerとHostプラグインをダウンロード、インストール (Androidの設定⇒セキュリティから、「提供元不明のアプリ のインストールを許可する」を有効にしておく) Android画面 Android画面
  • 5. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 2.3 STEP:2 パソコンから確認する準備 とりあえず試すために、マネージャアプリのセキュリティを無効にする ※セキュリティ設定の説明はまた別の機会に・・・ マネージャーアプリを開いてサーバ機能をオフにし、セキュリティ設定の外部IPのみを 有効にしてからサーバ機能をオンにする IPアドレス (ローカルNW) Android画面 4
  • 6. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 2.4 STEP:3 PCでデモ用Webサイトを開く 2. PCのWebブラウザで以下のURLを入力して開く "http://deviceconnectusers.github.io/manager/?ip=[Android端末のIPアドレス]#demo" ※Android端末上で開く場合はSTEP:1のURLに#demoをつける "http://deviceconnectusers.github.io/manager/#demo" 操作対象のIPアドレスとして パラメータを付加 5 PC画面
  • 7. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 2.5 STEP:4 デモ用Webサイトの動作確認:機能リストの表示 1.デモ画面でSearch Deviceを 選ぶとDevice ListにHostが 表示される。 2.Android端末の画面で [同意する]を選ぶと デモ画面に機能のリストが 表示される PC画面 Android画面 PC画面 6
  • 8. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 2.6 STEP:5.1 PC上の画像をAndroid端末で表示 PC画面 Android画面1.機能リストからcanvas、Canvas DrawImageを選択 2.ファイルを選択で画像を選択 3.mode:「最大化して画像描画」に変更してUploadを選択 4. 画像がAndroidの画面に表示される ① ① ② ② ③ ③ ④ 7
  • 9. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 2.7 STEP:5.2 Androidのカメラ映像をWebブラウザで表示 1.機能リストからmediastream_recording、Previewを選択 2.Webブラウザの画面にAndrpod端末のカメラ映像が表示される PC画面 8
  • 10. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 2.8 ブラウザで具体的なNWアクセス状況を確認 Chromeブラウザ上でデベロッパーツールを開く(CTRL+SHIFT+i) 9 PC画面
  • 11. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 2.8 ブラウザで具体的なNWアクセス状況を確認 Networkタブのログを右クリックで利用可能 10 次章で PC画面
  • 12. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 2.デバイスWebAPIの色々な機能を試す 3.curlによるREST API動作確認 ハンズオン内容 11
  • 13. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 3.1 REST APIを試す下準備 WebAPI(REST API)として利用できる=開発環境にも依存しない ⇒cURL(コンソールからHTTPリクエストが行えるツール http://curl.haxx.se/)により 動作を確かめます ※簡略化のために、セキュリティ無効設定を前提として進めます。 ※現状のバージョンでは、セキュリティ動作の都合上、スライドP.37(2.5 STEP:4)の手順で、 プラグインの機能確認のダイアログで[同意する]を選んでいる必要があります 準備(Windowsの場合) 1.プログラムとファイルの検索で ”cmd”と入力してコンソールの起動 2.cURLをダウンロードしてフォルダを作成 “cd [フォルダの場所]”でcurl.exeのパスに移動 cmd[改行] PC画面 12
  • 14. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved デバイスWebAPIが使えるかどうかの確認(availability) リクエスト >curl -X GET http://192.168.13.6:4035/gotapi/availability レスポンス {"result":0,"product":"Device Connect Manager","name":"Manager-XX","uuid":“xxxx","version":"v2.1.0"} 利用できるデバイスリストの確認(servicediscovery) リクエスト >curl -X GET http://192.168.13.6:4035/gotapi/servicediscovery レスポンス {"product":"Device Connect Manager","result":0, “services”:[{“id”:“「心拍数計のサービスID(利用環境から自動生成される文字列)」", "config":"","type":"BLE","name":"MIO GLOBAL","online":true}, {“id”:“「Host(Android機能)のサービスID(利用環境から自動生成される文字列)」", "scopes":["file_descriptor","phone","media_player","connect","settings","deviceorientation","canvas","authorization","proximity","system" ,"touch","file","serviceinformation","battery","mediastream_recording","keyevent","vibration","notification","servicediscovery"], "config":"HostConfig","type":"Wifi","name":"Host","online":true}],"version":“2.0.0"} >curl -X GET -H "Origin: http://localhost" http://192.168.13.6:4035/gotapi/servicediscovery curlコマンド HTTP GET Originの指定 (セキュリティ設定の Originを有効化した場合) AndroidのIPアドレス 4035ポートの利用はOMAで規定 3.2 REST APIで利用できる機能の確認 デバイスの名前 サービスID ※セキュリティ設定の Originを無効化している場合、curlを使わずにブラウザのアドレス欄からでも確認可能 13
  • 15. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 3.3 REST APIで利用できる機能の確認 プラグインリストの確認(system) リクエスト >curl -X GET http://192.168.13.6:4035/gotapi/system レスポンス {"product":"Device Connect Manager","result":0, supports":["files","system","authorization","servicediscovery","availability"], "plugins":[{"packageName":"org.deviceconnect.android.deviceplugin.heartrate", “id”:“「心拍数計のプラグインIDの文字列」", "supports":["servicediscovery","serviceinformation","system","health"], "name":"HeartRate(BLE) (Device Web API device plug-in)"}, {"packageName":"org.deviceconnect.android.deviceplugin.host", “id”:“「HostのプラグインIDの文字列」", "supports":["servicediscovery","serviceinformation","system","battery", "notification","vibration","settings","deviceorientation","file", "file_descriptor","proximity","connect","mediastream_recording", "phone","media_player","proximity","canvas","keyevent","touch" ], "name":"Host 2.0.0“ } ], "version":"2.0.0“ } プラグインの名前※2 プラグインID※2 ※1 本体APIの“files”はシステム内部のプラグイン処理で、“authorization”はセキュリティ処理で利用のため省略 ※2 ひとつのプラグインに複数のデバイスがあるため、プラグインID≠サービスID、プラグインの名前≠デバイスの名前となっている 本体のAPI※1 プラグインID※2 14
  • 16. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 3.4 REST APIで利用できる機能の確認 指定したデバイスで使える機能の確認(serviceinformation) リクエスト >curl -X GET http://192.168.13.6:4035/gotapi/serviceinformation ?serviceId=「servicediscoveryで見つかったサービスIDの文字列」 レスポンス {"product":"Device Connect Manager","result":0, "supports":["file_descriptor","phone","media_player","connect","settings","deviceorientation", "canvas","authorization","proximity","system","touch","file","serviceinformation","battery", "mediastream_recording","keyevent","vibration","notification","servicediscovery"], "supportApis":{"battery":{"swagger":"2.0","consumes":[],"info":{"description":"","title":"Battery Profile","version":"2.0.0"}, "paths":{ "¥/charging":{"get":{"responses":{"200":{"description":""}},"summary":"","description":"","x-type":"one-shot","parameters":[{"required":true,"in":"query","name":"serviceId","type":"string"}]}}, "¥/":{"get":{"responses":{"200":{"description":""}},"summary":"","description":"","x-type":"one-shot","parameters":[{"required":true,"in":"query","name":"serviceId","type":"string"}]}}, "¥/level":{"get":{"responses":{"200":{"description":""}},"summary":"","description":"","x-type":"one-shot","parameters":[{"required":true,"in":"query","name":"serviceId","type":"string"}]}} }}(略)}(略) "connect":{},"version":"2.0.0"} 利用できる 機能のリスト プラグインの設定をする(system/device/wakeup) リクエスト >curl -X PUT http://192.168.13.6:4035/gotapi/system/device/wakeup ?pluginId=「systemで見つかったプラグインIDの文字列」 レスポンス {"product":"Device Connect Manager","result":0,"version":"2.0.0"} ↑のようなプラグイン の設定画面が開きます 15 ↑ 具体的なAPI記述ルール(Swagger形式)
  • 17. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved バッテリーの残量を知る リクエスト >curl -X GET http://192.168.13.6:4035/gotapi/battery ?serviceId=「servicediscoveryで見つかったサービスIDの文字列」 レスポンス {“charging”:true,“product”:“Device Connect Manager","result":0, "level":0.8700000047683716,"version":"2.0.0"} 3.5 REST APIとしての動作確認:機能の利用例 残り87% Androidに通知を送る リクエスト >curl -X POST http://192.168.13.6:4035/gotapi/notification/notify -F “serviceId=「servicediscoveryで見つかったサービスIDの文字列」" -F "type=3" -F "body=%E3%83%86%E3%82%B9%E3%83%88" レスポンス {"product":"Device Connect Manager","notificationId":69699,"result":0,"version":"2.0.0"} URLエンコードされた文字列(ここでは「テスト」を表している) Android端末上に 通知が表示される (通知の出方は環境依存) サービスID サービスID Android画面 https://github.com/DeviceConnect/DeviceConnect-JS/wiki/2.13.Notification#notification_post 16
  • 18. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved ぜひご活用ください ・Webの標準的な技術のみで、デバイスアクセスのためのWebインターフェースを実現、 Webサイトから利用導線も用意できるのでプリインストールも不要 ・仕様をOMAで標準化し、自由なライセンス(MIT)でオープンソース提供、コンテンツ開発や デバイス対応のためのSDKも整備 ・シンプルで手軽なHTTPでのアクセスから、セキュリティ対策を施したWebSocketによる 効率的なアクセスまで、目的に応じた機能アクセスが可能 http://hacklog.jp/apis/224/ 17
  • 19. Copyright© 2016 NTT DOCOMO, Inc. All rights reserved 18 セキュリティに関するご案内 今回は簡単に利用するため、本来のセキュリティ機能を外しています。 今後利用しない場合は、アンインストールしてください。 ・DeviceConnectManagerアプリを開く⇒「デバイスプラグイン管理」を選択⇒ 「HOST(Device Connect ...)」を選択⇒削除ボタン ・DeviceConnectManagerアプリは通常のAndroidアプリと同様にアンインストール 利用する場合でも「DeviceConnectManager」の設定からManagerをOFFにし、 「外部IPを許可」を無効にしてください。