#0.はじめに
滑り込みですが、Webex Advent Calendar 17日目に参加させていただきます。
実はQiitaで記事を書くのも初めてで、このためにアカウント作成したのですが、Webex Deviceの活用が盛り上がればいいなと思い書かせて頂きました。
本記事の着想および見出しについては、
Webex Advent Calendar 2021 |15日目 @kunqi 様の記事
を参考にさせて頂いております。
#1.背景
前提として、以下の実装を行うユーザアカウントと同じWebex組織にレジストしたWebex Deviceが必要になります。
(Webex Board, Webex Desk, Webex Roomkitなど)
Webex Deviceは見た目が非常にスタイリッシュでカッコイイこともあり、
お客様の注目を引きやすいです。(そのまま購入に繋がればなおいいのですが…)
製品紹介デモのやりがいもあります。
一方、会社支給のiPhoneやiPadを組み合わせて格好いいデモを行おうとすると、
自由にアプリケーションをインストールすることができないといった制限に当たることもありました。
そのため、iOS標準の機能のみを用いて、タッチパネルに触れずにWebex Deviceをスタイリッシュに操作する方法をご紹介します。
#2.実現方法
実は、iPhone, iPadに標準で搭載されているショートカット機能を使って、REST-APIを実行することができます。(iOS13.3 , 14.3で確認)
Webex DeviceのxAPIと合わせて、Postmanなどのアプリケーションのインストール無しにiPhoneをWebex Deviceのリモコンとして活用する方法をご紹介します。
##2.1 必要情報の収集
Webex Developers Site にログインし、
APIs - Devices - List Devices のAPIをブラウザ上で実行して組織内のデバイス一覧を取得しておきます。
認証に必要なパーソナルアクセストークンのBearer codeと、
実行結果の中から、操作したいデバイスのDevice IDをコピーしてメモします。
※今回は簡単化のため一時的なパーソナルアクセストークンを使用していますが、実際にはOAuth tokenなどが必要になります。
セキュリティにはご注意ください。
##2.2 iPhoneショートカットの作成
iPhoneのショートカットから、
新しいショートカットを作成⇒"Web"を選択し、
"Webリクエスト"⇒"URLの内容を取得"とするだけで、
GET, POST, PUT, DELETEといったHTTPメソッドが実行可能になります。
##2.3 実行
Webex Device本体のタッチパネルを使用せずに、本体をスタンバイ状態にするボタンを作成してみます。
URLにはxAPIによりデバイスをスタンバイ状態にするコマンドを指定。
https://webexapis.com/v1/xapi/command/standby.activate
参考:RoomOS xAPI Reference
認証のため、ヘッダにAuthorizationフィールドを追加し、2.1で取得したBearerコードをペースト、
本文に新規テキストとして deviceIdフィールドを追加し、2.1で取得したDevice IDをペーストします。
iOSのショートカットはアイコンと名前をカスタマイズすることもできるので、
それらしいものを設定して"ホーム画面に追加"。
これだけでiPhoneのホーム画面にWebex Deviceを操作するボタンを作成できました。
反対にスタンバイから復帰させるボタンや、Webex DeviceのWebアプリ機能を用いて動画を再生するボタンなども簡単に追加可能です。
#3.まとめ
iOS標準の機能のみを用いて、iPhoneからWebex Deviceを操作する方法をご紹介しました。
iPhoneのショートカットは複数操作を羅列したりオートメーション化したりすることもでき、
Webex Deviceは実機で実行可能なほぼ全てのコマンドをAPIで実行することができるので、
アイデア次第でまだまだ活用の幅は広がると思います。
#参考文献
iOS14ショートカットユーザガイド
Webex Developers Site
Webex Advent Calendar 2021
#免責事項
本サイトおよび対応するコメントにおいて表明される意見は、投稿者本人の個人的意見であり、私の所属する組織の意見ではありません。本サイトの内容は、情報の提供のみを目的として掲載されており、私の所属する組織や他の関係者による推奨や表明を目的としたものではありません。各利用者は、本Webサイトへの掲載により、投稿、リンクその他の方法でアップロードした全ての情報の内容に対して全責任を負い、本Web サイトの利用に関するあらゆる責任から私の所属する組織を免責することに同意したものとします。