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

PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
PDF
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
PDF
「オルタンシア・サーガ」開発の裏側
PPTX
Moverio+unityで始めるarグラスアプリ開発
PPTX
DiI/DIコンテナを一から学んでみた
PPTX
トランザクションをSerializableにする4つの方法
PDF
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
PDF
Swaggerで始めるモデルファーストなAPI開発
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
「オルタンシア・サーガ」開発の裏側
Moverio+unityで始めるarグラスアプリ開発
DiI/DIコンテナを一から学んでみた
トランザクションをSerializableにする4つの方法
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
Swaggerで始めるモデルファーストなAPI開発

What's hot (20)

PDF
大規模なリアルタイム監視の導入と展開
PDF
Spring Day 2016 - Web API アクセス制御の最適解
PDF
AWS Black Belt Online Seminar Amazon Aurora
PDF
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
PDF
なるべく作らない内製のために~「作る」から「選んでつなぐ」へ~
PDF
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
PPTX
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
PPTX
API Gatewayご紹介
PDF
GraphQL入門 (AWS AppSync)
PPTX
Spring超入門-Springと出会ってから1年半-
PDF
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
PDF
Linux女子部 systemd徹底入門
PDF
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
PDF
Springを何となく使ってる人が抑えるべきポイント
PPTX
いまさら、AWSのネットワーク設計
PPTX
[社内勉強会]ELBとALBと数万スパイク負荷テスト
PDF
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
PDF
Spring Fest 2018 Spring Bootで作るRESTful Web Service
PDF
AWS EC2 Eメール制限解除 - 逆引き(rDNS)設定 申請手順
PDF
AWS Black Belt Online Seminar Antipattern
大規模なリアルタイム監視の導入と展開
Spring Day 2016 - Web API アクセス制御の最適解
AWS Black Belt Online Seminar Amazon Aurora
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
なるべく作らない内製のために~「作る」から「選んでつなぐ」へ~
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
API Gatewayご紹介
GraphQL入門 (AWS AppSync)
Spring超入門-Springと出会ってから1年半-
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
Linux女子部 systemd徹底入門
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
Springを何となく使ってる人が抑えるべきポイント
いまさら、AWSのネットワーク設計
[社内勉強会]ELBとALBと数万スパイク負荷テスト
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
Spring Fest 2018 Spring Bootで作るRESTful Web Service
AWS EC2 Eメール制限解除 - 逆引き(rDNS)設定 申請手順
AWS Black Belt Online Seminar Antipattern
Ad

Viewers also liked (9)

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

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

PDF
デバイスWebAPIによるIoTの普及拡大と応用事例
PDF
VDC 5th - NTTドコモ ハンズオン資料
PDF
デバイス WebAPI設計の進め方
PDF
デバイスコネクトWebAPIの開発状況について
PDF
デバイスWebAPI実装のアップデートと利用事例について
PDF
デバイスWebAPIを用いた各種ソリューション適用事例の紹介
PDF
ドコモオープンイノベーションの取り組みと提供APIのIoT展開について
PDF
たかがAPI,されどAPI、シナジーで広がるビジネスチャンス
PDF
デバイスコネクト活用事例紹介
PDF
デバイスWebAPIコンソーシアム第一回総会について & OMA GotAPI 標準化作業状況アップデート
PDF
LinkingとデバイスWebAPI
PPTX
Microsoft Azure Mobile Serviceによるアプリ構築
PDF
ドコモAIエージェントにおけるデバイスWebAPIの活用とサポートプログラムについて
PDF
Mobile Web
PDF
リモート・スマホ・シェアリング
PDF
GotAPIの概要と技術解説
PPTX
クラウド―Arduino接続について
PDF
クラウド連携版デバイスWebAPI
PPTX
Web エンジニアのための Web エンジニアのための ロボットアームの API を考えてみる
PDF
Windows ストアアプリから使かえるセンサーAPIとデバイスAPI
デバイスWebAPIによるIoTの普及拡大と応用事例
VDC 5th - NTTドコモ ハンズオン資料
デバイス WebAPI設計の進め方
デバイスコネクトWebAPIの開発状況について
デバイスWebAPI実装のアップデートと利用事例について
デバイスWebAPIを用いた各種ソリューション適用事例の紹介
ドコモオープンイノベーションの取り組みと提供APIのIoT展開について
たかがAPI,されどAPI、シナジーで広がるビジネスチャンス
デバイスコネクト活用事例紹介
デバイスWebAPIコンソーシアム第一回総会について & OMA GotAPI 標準化作業状況アップデート
LinkingとデバイスWebAPI
Microsoft Azure Mobile Serviceによるアプリ構築
ドコモAIエージェントにおけるデバイスWebAPIの活用とサポートプログラムについて
Mobile Web
リモート・スマホ・シェアリング
GotAPIの概要と技術解説
クラウド―Arduino接続について
クラウド連携版デバイスWebAPI
Web エンジニアのための Web エンジニアのための ロボットアームの API を考えてみる
Windows ストアアプリから使かえるセンサーAPIとデバイスAPI

More from Device WebAPI Consortium (20)

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

デバイス 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を許可」を無効にしてください。