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

今日はここまでとしましょう。

コメントを残す

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