mozikeru.com

和歌山在住。1児の父。IoTエンジニア。各種ご相談承ります。

myThingsDevelopersを実装する際のポイントについて

先日(2017/08/20)、和歌山の開発者コミュニティWackerで、
myThingsDevelopersのハンズオンイベントを主催させて頂きました。
良い機会なので、その際に発表させて頂いた内容を元に、myThingsDevelopersを
実装する際に注意するべき点等、抑えておくと良さそうな部分をまとめておきます。
 

■myThingsとmyThingsDevelopersの違いについて

myThingsはYahooさんが運営する「IoTプロダクトやWEBサービスを組み合わせる」ことが出来るIFTTTZapierなんかに近い、個人向けのサービスです。
 
myThings DevelopersはmyThings的に作成した組み合わせを、自分のサービスとして一般の方に公開することが出来ます。
 
具体的にはmyThingsDevelopersにはYahooIDを用いたOAuthの仕組みが備わっていて、
これを使って一般の方の各種WEBサービスのアカウント同士を連携させる事が出来ます。ですのでWEBサービス間の認可部分を自前構築する必要がありません。
 

■カスタムトリガー作成時のテストコードについて

カスタムトリガー(自分のサーバーをトリガーとして使用すること)を使った組み合わせをmyThingsDevelopers上で作成すると、「テストコード」というものが生成されます。
 
このテストコードの他に、フェーズを進めることで実装用の「サンプルコード」というものも
自動生成されます。以前、どちらを使用するべきかわからなかったのでYahooの方に聞いてみました。
 
Q.テストコードには使用期限等、使い続けることで不利益が発生するパターンが存在する?
A.いいえ、特に使用期限等は存在しない。リリースを行った後でも使う事は可能。
 
Q.テストコードを使う上での注意事項は何かある?
A.APIのアクセストークンをあまりセキュアでない方法で保持しているので、その部分について
 何らかの工夫を考えてもらう必要がある
 (DBに保存するよう修正するとか、暗号化を別途施すとか)
 
少なくとも自分だけがローカルで使うような仕組みであればテストコードでも問題なさそうです。
 

■自分のプロダクトで使用する場合に考えておいた方が良さそうなこと

【エンドユーザーのYahooIDを誰が入力するのか】

myThingsDevelopersでリリースした組み合わせはその性質上、エンドユーザーにYahooIDの入力を求めます。

YahooIDをどうやって取得してもらい、どうやって入力してもらうのか、を考えてサービス設計を行う必要があるでしょう。

例えば、私が本業で携わっているような、エンドユーザーが高齢者であるようなサービスの場合、YahooIDの取得/入力はそれなりにユーザー負荷が高い行為になる公算が高く、使い所については少し工夫が必要だと思っています。
 

【組み合わせを変える場合には再リリースが必要】

myThingsDevelopersではリリースした組み合わせを後から変更する事が出来ません。

例えば、カスタムアクションのサーバーが移転してURLを変更したいような場合、組み合わせを新規に作成してリリースしなおす必要が発生します。

その場合、すでに使用中のエンドユーザーには、新しくリリースした組み合わせで再度YahooIDによる連携をし直してもらう事になってしまいます。
 
できれば、そういった場合に備えて、カスタムアクションに使用するURLは直接のIPアドレスやホスト名ではなく、ドメイン名でのURLを指定するようにして、万が一将来引っ越しを余儀なくされた場合でも、DNSレコードの書き換えだけで済むように備えておくべきでしょう。

---------------------------------------------------------------
今のところの知見はこんなところです。

myThingsDevelopersは多数のWEBサービスを決まった作法で使用する事が出来るため、使い方さえ覚えてしまえば、低コスト(使用料、学習コスト共に)でかなりの効果が期待できる魅力的なサービスです。連携できるWEBサービスも今後ますます増えるとのことですので、どんどん活用していこうと考えています。