myThings DevelopersのチュートリアルをIBM BluemixのCloudFoundryを使いながら進めてみよう。という記事です。
myThings Developersとは
myThings Developersは、さまざまなサービス、デバイスのAPIを共通のI/Fで束ねるサービス連携プラットフォームです。
myThings Developersを活用することで、TwitterやFacebookなどのWebサービスを始め、FitbitやJawboneUPなどのウェアラブルデバイス、BOCCOのようなロボット、異なるメーカーが提供しているサービスやデバイスのAPIを共通のI/Fで利用することができ、開発負担・API学習コストを下げることことができます。
myThingsアプリという同名のスマホアプリもありますが、それとの違いはこちらを参照してください。
http://qiita.com/yamamotomanabu/items/c10e0f05d477a25ff80e
必要なもの
- Yahoo! JAPAN ID
- IBM Bluemixのアカウント
公式チュートリアルには、「プログラムの実行環境(サーバー)」が必要とあるのですが、これにIBM Bluemixを利用します。
チュートリアルの内容
ゴール
公式チュートリアルでは、myThings Developersのカスタムトリガーという機能を使って、Twitterと連携させる手順が記載されています。
それではここからは実際にmyThings Developersに触ってみます。
ステップ1
ステップ1ではサーバは利用しないので公式チュートリアルをそのまま実施しましょう。
ステップ2
ステップ2以降はサーバが必要になってくるので、公式チュートリアルを進める前にこちらの手順を済ませてサーバの準備を行います。
コマンドラインインターフェースのインストール
④の実行時に
exec: "cf": executable file not found in $PATH
と出力された場合は、以下のようにcfにパスを通してください
export PATH=$PATH:(cf-cliを解凍したパス)
サンプルコードをデプロイ
あとは公式チュートリアルに戻って、setting_sample.phpとtrigger_sample.phpを作成し、Bluemixにデプロイしましょう。
デプロイする際には以下のようにチュートリアル用のディレクトリ(ここでは"myThings-tutorial")を作成して、CloudFoundryにおくとファイル管理しやすいです。
$ ls -al ./myThings-tutorial
total **
********** * ** ** 204 10 22 10:25 .
********** * ** ** 238 10 22 10:25 ..
********** * ** ** 5301 10 20 02:42 setting_sample.php
********** * ** ** 5570 10 20 02:42 trigger_sample.php
$ cd ./myThings-tutorial
$ cf push <Bluemixのアプリケーション名>
以降はそのまま公式チュートリアルに従ってください。また、Twitterだけでなく色々なサービスとの連携を試してみて頂ければと思います。
ステップ3
ステップ2のサンプルコードは、「myThings Developersにユーザー登録した人(Yahoo! JAPAN ID)」と「Bluemixで作成したホストにアクセスした人(アクセスしたブラウザでログインされているYahoo! JAPAN ID)」が同じする人であることが前提の内容になっています。
Composerの利用
今のままでは不特定多数の方にアクセスしてもらえないので、ステップ3ではoAuthの実装を行います。チュートリアルにある通り「Yahoo! ID連携 SDK for PHP」というSDKを導入してみます。
IBM Bluemix(CloudFoundry)でもComposerを利用することができます。アプリケーションのrootにcomposer.jsonを置くことでcf push時に各種ライブラリをインストールしてくれます。
$ ls -al ./myThings-tutorial
total **
********** * ** ** 204 10 22 10:25 .
********** * ** ** 238 10 22 10:25 ..
********** * ** ** 223 10 22 17:49 composer.json
********** * ** ** 5301 10 20 02:42 setting_sample.php←STEP2の名残り。もう消して良いです
********** * ** ** 5570 10 20 02:42 trigger_sample.php←←STEP2の名残り。もう消して良いです
$ cd ./myThings-tutorial
$ cf push <Bluemixのアプリケーション名>
-こんな感じの実行ログが流れます-
(省略)
Loading composer repositories with package information
Updating dependencies
- Installing yahoojapan/yconnect-php-sdk (dev-master 251ade9)
Cloning 251ade9e2ee0d61ba539e13d85f3a9ab5911e25c
Writing lock file
(省略)
この「Yahoo! ID連携 SDK for PHP」の導入さえIBM Bluemix(CloudFoundry)に合わせたやり方に読み替えれば、あとは公式チュートリアルの内容通り、index.php、callback.php、geturl.php、setting_callback.php、customtrigger.phpといったファイルをサンプルコードそのままに作成して、動作確認を進めてください。
一点注意としては、以下のような設定例がたびたび出てくるのですが、http://www.example.com は必ずご自身の環境向けに書き換えてください。Bluemixであれば、http://(人それぞれ).mybluemix.net のようになるはずです。