ヤフー株式会社が提供する、IoT時代の事業者向けプラットフォームサービス「myThingsプラットフォーム」のスマートフォンアプリ「myThingsアプリ」にニフティクラウド mobile backend(以下mBaaS)の「mobile backendチャンネル」を開設しました。このブログではその使い方を紹介します!
- myThingsアプリとは?
- mBaaSとは?
- 「myThingsアプリ」の「mobile backendチャンネル」でできること
- 「mobile backendチャンネル」の認証
- 「mobile backendチャンネル」のトリガーの利用方法
- 「mobile backendチャンネル」のアクションの利用方法
- 利用の注意事項
myThingsアプリとは?
myThingsアプリは、WebサービスやIoTデバイスが持つ機能を自分で組み合わせて便利に使うことができるアプリです。現在iOS、Android向けに提供されています。
機能をもう少し端的にすると下記の様に表現できます。
たとえばTwitterとmBaaSを例に取ると下記の様なことができるようになります。
次に、myThingsでよく使われる用語である、チャンネル、トリガー、アクション、組み合わせの意味をまとめます。前述した○○と△△は具体例のTwitter、mBaaS以外にもFacebookやFitbitといったサービスやデバイスの名前が入ります。これらをmyThingsではチャンネルとよんでいます。そして連携のきっかけとなる「○○が☓☓だったら」という条件のことをトリガーとよんでいます。トリガーの状態を満たしたら実行する「△△を□□する」という操作のことをアクションとよんでいます。
前述のTwitter、mBaaSの例で言えば、 「Twitterで#ncmbが投稿されたら」 がトリガーにあたり、 「mBaaSに追加する」 がアクションにあたります。
mBaaSとは?
mBaaSとは、「mobile backend as a Service」と呼ばれるクラウドサービスの略称で、スマートフォンアプリでよく利用される汎用的な機能をクラウドから提供するサービスです。クラウド上に用意された機能をAPIで呼び出すだけで利用できるので、サーバー開発・運用不要でよりリッチなバックエンド機能をアプリに実装することができます。「myThingsアプリ」ではデータストア(データベース機能)を使える、「mobile backendチャンネル」を開設しました。
「myThingsアプリ」の「mobile backendチャンネル」でできること
さて「myThingsアプリ」と「mobile backendチャンネル」で何ができるのか気になっている方もいるのではないでしょうか?「mobile backendチャンネル」でも「トリガー」と「アクション」を提供していますのでそれぞれ具体例を示しながらできることを説明します。
トリガーで活用する場合
データストアに新たなデータが追加・更新されたことを「トリガー」にし、「アクション」を発動できます。
下の図のように 「自作したネットワーク対応済み温度センサのデータをmBaaSのデータストアに追加・更新したら、」 という「トリガー」のもと 「Twitterで温度の値を投稿する。」 といった「アクション」が発動できます。植物などの見守りに使えそうな使い方ですね。
アクションで活用する場合
トリガーが発火した場合に、データストアにデータを追加・更新するアクションを発動できます。
下の図のように 「myThingsアプリ対応済み機器(活動量計・体重計など)のデータが更新された場合に、」 というトリガーのもと
「mBaaSにデータを追加・更新する。」 といったアクションが発動でき、ヘルスケアデータの一括管理が行えるようになります。
「mobile backendチャンネル」の認証
さて、「mobile backendチャンネル」を利用するには「myThings」からmBaaSを操作できるように両者間に「認証」を通す必要がありますので、その方法をご紹介します。 myThingsからmBaaSに認証を通すには下記の作業が必要になります。
mBaaSへの利用登録
まず、mBaaSの利用登録が必要になります。サイトトップページ(http://mb.cloud.nifty.com/)のヘッダー右端にある「無料登録」をクリックしてアカウントの取得をお願いします。
登録後、ログイン・利用規約などを経て下記の「アプリの新規作成」画面が表示されます。
アプリの新規作成・APIキーの取得
「myThingsアプリ」に設定する関係上、ここからの作業は「myThingsアプリ」をインストールしたスマートフォンで行いましょう。スマホのブラウザからmBaaSのログインを行い、「アプリの新規作成」画面と同じものを表示させてください。この「アプリ」というのはmBaaS上で仮想的に作られる、アプリ用のサーバー環境と捉えてください。
※スマホのブラウザで表示したmBaaSの「アプリの新規作成」画面
アプリ名は本来任意の文字列で問題ないのですが、例として「mythings」と入力して「新規作成」をタップすると下記の様な画面に切り替わります。
上記の「アプリケーションキー」と「クライアントキー」をワンセットで「APIキー」と呼んでいます。このAPIキーがあれば自身のサーバーのデータを自由に編集できるようになりますので、漏洩しないように気をつけてください。このAPIキーを「myThingsアプリ」に埋め込みます。
APIキーをmyThingsアプリから設定
APIキーを「myThingsアプリ」に設定していくために、「mobile backendチャンネル」の認証画面を表示します。まずは「mobile backendチャンネル」の選択を行いましょう。下記の図のように「チャンネル一覧」を開き一覧の下方にある「mobile backendチャンネル」を選択してください。
チャンネル認証の画面が表示されますので、「認証する」をタップします。「アプリケーションキー」、「クライアントキー」の「APIキー」を入力する画面が表示されます。ここで一つ気をつけるべき点として、「APIキー」の入力画面は「myThingsアプリ」で表示されているわけではなく、スマホの「デフォルトブラウザ」で開かれている点です。これから、mBaaSの画面と行き来して、「APIキーの入力」を行いますが、その際に「myThingsアプリ」を開いても入力画面は表示されません、「デフォルトブラウザ」を開く必要があります。
それではmBaaSの「APIキー」が表示されている画面から、入力画面に貼り付けを行います。
その後「利用を開始する」をタップしましょう。下記の様な画面が表示されれば成功です。
このとき「認証」が正常に完了しているか、myThingsからmBaaSへAPIが1回コールされています。そのため、認証のたびにAPIを1回消費します。
APIキーの見方が分からなくなったら
実際に「myThingsアプリ」を試して、認証を再度設定したくなったとき、mBaaSのAPIキーの確認方法が分からず困ることがあるかと思います。その場合の対処方法をご紹介します。「APIキー」が表示された画面で「OK」をタップすると、ダッシュボードに入れます。
そのヘッダーメニュー右端にあるアプリ設定をタップすると、アプリ設定の「基本」メニューに遷移します。スクロールを行うと「APIキー」が表示されます。
このようにして確認が行えますので再度認証をする機会があれば、ご活用ください。
「mobile backendチャンネル」のトリガーの利用方法
認証が完了すれば、「mobile backendチャンネル」が使えるようになります。まずは「mobile backendチャンネル」の「トリガー」について紹介します。「トリガー」には以下のような2つがありますのでそれぞれ利用方法を見たいと思います。
- データが追加されたことを検知する「追加」
- 特定のデータが変更されたことを検知する「更新」
ただ、「トリガー」を使うにはmBaaS側に特別な設定が必要になりますので、まずその準備からはじめたいと思います。
mBaaSの準備
「mobile bakcendチャンネル」の「トリガー」の「追加」を利用するにはあらかじめ、mBaaSのデータストアを作りこむ必要があります。ここではその作りこみ方を紹介します。 データベースがテーブルを何個も持てるように、mBaaSのデータストアも何個も「クラス」を持てます。また、テーブル内にカラムを持てるように、「クラス」内にカラムに当たる「フィールド」を持てます。「myThingsアプリ」の「トリガー」から利用する場合は「フィールド」が特定のものでないといけません(「クラス名」は任意の文字列で問題ありません)。これから「クラス」の作成から、「myThingsアプリ」で使う際の「フィールド名」とその設定方法をご紹介します。
「クラス」の作成
ここからの作業は、煩雑ですのでPCでの作業をお勧めします。PCでmBaaSのダッシュボードに入り、左のメニューから「データストア」を選んでください。下図の「クラス」の文字列の隣にある「+作成」をクリックすると「新しいクラス」というポップアップが出ますので「mythings」と入力します(「クラス名」は任意の文字列で問題ありません)。入力後、「作成する」をクリックすると新たな「クラス」が作られます。
「フィールド」の設定
次に、クラス内の「フィールド」を設定します。デフォルトで用意されている「フィールド」は以下になります。
- objectId
- createDate
- updateDate
- acl
「myThingsアプリ」で利用するには新たに以下の「フィールド」を加える必要があります。
- text1
- text2
- text3
- url1
- url2
- url3
加え方は以下の図のように、「mythingsクラス」を選択し、「+新しいフィールド」を選択します。すると「フィールドの追加」というポップアップが表示されるのでそこに「text1」を入力して「作成する」をクリックすると新しい「フィールド」、「text1」が追加されます。これを「text2」~「url3」まで繰り返します。
「text1」、「url1」などと入力していますが、本当に文字列、urlを入力する必要はありません。数値などでも問題なく使えます。
「追加」で利用するには
「mobile bakcendチャンネル」の「トリガー」の「追加」を利用するため、下記の要領で「myThingsアプリ」の作成画面から「トリガー」を設定し詳細設定を選択します。
「詳細設定」をタップしたのち、「追加」を選びます。「クラス名」の指定を促されますので上で作成した「mythings」を入力します。
次にアクションを選ぶ画面になりますのでTwitterを選び、詳細設定から「ツイートする」を選びます。すると上記の左から3枚目の画像が表示されます。ツイート内容を入力する画面(下図参照)があるので、カーソルを合わせるとmBaaSから値の受け渡しが可能な「フィールド名」が表示されています。今回はその中から「text1」を選択してツイートするようにします。
ツイート文言の入力後アクション詳細設定の画面の「OK」をタップし、作成画面で時間指定などを終え、最下端にある「作成」ボタンをタップします。デフォルトの設定であれば「myThings」が15分ごとに前回との差分を確認しに行き、新たなデータの追加があれば実行されます。実行までの間に以下の図のようにmBaaSのダッシュボードの「mythingsクラス」で「+新しいレコード」をクリックして新たなデータを追加しましょう。
実行されると下記の様にツイートされます。
「更新」で利用するには
「更新」で利用するときには「myThingsアプリ」上で新たな組み合わせを作る必要があります。新規に作成しトリガーを「mobile backendチャンネル」の「更新」に設定します。
「更新」の場合には「クラス名」と「objectId」の入力が求められます。「objectId」はデータストアにおけるプライマリーキーです。下図のように文字列を確認して入力をします。
「追加」のときと同じ要領でTwitterで「text1」フィールドをツイートするように組み合わせを作成し、下記のようにmBaaSのダッシュボード上でデータを更新します。
実行されると下記の様にツイートされます。
「mobile backendチャンネル」のアクションの利用方法
次に「mobile backendチャンネル」の「アクション」について紹介します。「アクション」には以下のような2つがありますのでそれぞれ利用方法を見たいと思います。
- 新たなデータを追加する「追加」
- 特定のデータを変更する「更新」
「追加」で利用するには
「mobile bakcendチャンネル」の「アクション」の「追加」を利用するため、まず「トリガー」を設定しましょう。今回は「ボタン」を選択します。アクションに「mobile backendチャンネル」の「追加」を設定し、「クラス名」、「フィールド名」、「データ」をそれぞれ入力します。
入力を終えたら、組み合わせを作成します。下図のように、ボタンの実行画面から作った組み合わせを選び、表示されるボタンを長押しして実行します。新たなクラスに新たなフィールドができ、データが追加されています。
「更新」で利用するには
「mobile bakcendチャンネル」の「アクション」の「更新」を利用するため、まず「トリガー」を設定しましょう。今回は「ボタン」を選択します。アクションに「mobile backendチャンネル」の「更新」を設定し、「クラス名」、「objectId」、「フィールド名」、「データ」をそれぞれ入力します。
入力は下図を参考にしてください。
「アクション」の「追加」のときと同様に組み合わせ作成後、ボタンを長押しするとデータが更新されます。
利用の注意事項
「myThingsアプリ」からmBaaSを使う場合に気をつけるべき点を下記に記載します
- 「myThingsアプリ」での認証時に、mBaaSのAPIが1回叩かれる。
- トリガーでの利用の場合、トリガー発動時に1回、APIが叩かれる。1つ組み合わせだけにトリガーを使うと月に最大約3000回APIが叩かれる計算になる。
- 計算方法
- 15分に一度発動すると1時間に4回APIを叩く
- 一日に4(回)×24(時間)=96(回)APIが叩かれる
- 1月30回だとすると96(回)×30(日)=2880回
※月をまたぐとmBaaSでのカウントが0(回)に戻ります。
まとめ-私が思う「mobile backendチャンネル」のメリット-
ここまで、「myThingsアプリ」の「mobile backendチャンネル」の使い方を紹介しました。ここでは筆者が思うメリットを記述します。
- mBaaSを「トリガー」にして何かしらのアクションを起こせる
- IDCFチャンネルと組み合わせれば、シグネチャ生成のロジックを組まずにIoT機器からmBaaSにデータが保存できる
- TwitterなどのSNSの投稿を自分が開発したアプリに表示できる(ゲームの演出に使える)
特に一番目のメリットは、現在mBaaSから起こせるアクションがスクリプトに限定されている中、新たな手段が提供されたことになり、非常に大きな変化だと思います。「myThingsアプリ」と「mBaaS」を組み合わせて新たなアプリ体験を生み出してください!