nestのサンプルを動かしてみる(iOS編)

先日の続きです。前回は見事にwebサンプルを動作させることに挫折しました。問題の切り分けも兼ねて、先にiOSのサンプルを動作させてみることにします。

https://developer.nest.com/documentation/cloud/ios-nestdk よりiOS-NestDK-master.zipをダウンロードして展開します。
iOS-NestDK.xcodeprojを実行します。 ちなみに今回の実行環境は以下のとおり。

  • mac OS X 10.10.1(yosemite)
  • Xcode 6.1.1

このアプリはサーモスタットのコントロールのデモのようです。Redmeに記載されている通り、まず、Constants.mを開いて、`NestClientID`, `RedirectURL`それと `NestClientSecret` をこのページの値に書き換えます。
nest_ios_Constants
実行してみます。
nest_ios_001
Connect with your nest account!をタップします。
すると、webviewで認証のページに行きます。ここはweb版と同じ、認証の部分ですね。
nest_ios_002nest_ios_003
 
オレンジのCONTINUEボタンをタップ。
nest_ios_004
ユーザー名とパスワードを入力してSIGN IN。するとPincodeが表示されます。
nest_ios_005
はい、web版と同じくここまで来て、動かなくなります。うーん、よくわからない。どうも、PINを表示しているようですよね。通常oauthなら、このpinを控えておき、アプリケーションに戻り、アプリケーションにpinを入力、ってのが定番なのですが・・・は、待てよ!これはもしや「リダイレクト」にしか対応していないのでは???ということでソースを読んでみると、あった!やはりリダイレクトしか想定していないコードのようです。
というわけで、リダイレクトに対応するようにClientsの設定を変更します。赤で囲んだ設定ボタンをクリックします。
nest_clients_edit
 
OAuth Redirect URI(Leave blank for PIN-based authorization)
となっていることろに、存在するhttps:// のURLを記載しておきます。存在しないURLではうまくいきません。今回は自分のドメイン名を指定しました。
nest_client_edit_redirect
Constants.mを開いて、RedirectURLを設定します。
nest_constants
では実行してみましょう。
はい、うまくいきました!!!
nest_ios_007
次にブラウザでhttps://home.nest.com/を開いてみましょう。
スクリーンショット 2015-01-25 15.13.00
現在の温度は華氏70度、設定温度は58度。同じですね。
では、iOSから設定温度を80度にしてみます。
nest_ios_008
すると、すぐにnestにも反映されます。
nest_home_80
今度は、温度が下がってきた場合をテストしてみましょう。Nest Developer Toolで室温が華氏82度になったことにします。
nest_home_setto82
 
すると、iOS側にも自動的に反映され、室温が82度(摂氏27度ぐらい)になっています。
nest_ios_009
ふう、無事に動きました!今回はOAuthでハマってしまいました。じゃあ、先日のサンプルも動くのでは?
再度、gruntしてhttp://localhost:8080/にアクセスします。
しかしながら、うまく行きません。ソースコードを読んでいくと、どうもリダイレクト先を適切に設定しなければんらないようです。https://developer.nest.com/clients を開きリダイレクト先を次のアドレスに変更します。
http://localhost:8080/auth/nest/callback
実行してみましょう。ログインすると、はい、うまくいきました!
nest_web_success
今日はここまでとしましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です