"; $html_devices .= ""; $html_devices .= "\n"; $html_devices .= "\n"; if (count($devices)){ foreach( $devices as $key => $value ){ $deviceId = $value["deviceId"]; $nickname = $value["nickname"]; $html_devices .= ""; $html_devices .= ""; $html_devices .= ""; $html_devices .= ""; } }else{ $html_devices .= ""; $html_devices .= ""; } $html_devices .= "
aiboさん一覧
ニックネームDeviceId
$nickname$deviceId

aiboのデバイスIDの取得ができませんでした
アクセストークンが間違っていないか、有効期限がきれていないかを確認頂き、前の画面に戻って再度実行してください


"; //----------------------------------------------------------------------------------- // aiboのバッテリー残量チェック //----------------------------------------------------------------------------------- $html_energyResult .= ""; if (count($devices)){ foreach( $devices as $key => $value ){ $deviceId = $value["deviceId"]; $nickname = $value["nickname"]; //aiboのバッテリー残量チェック $executeResponse = cognitionApi($deviceId,$accessToken,'hungry_status'); $executionId = $executeResponse->executionId; sleep(1); //aiboのバッテリー残量チェックの結果 $webApiURL = $aiboApiBaseURL ."/executions/" . $executionId; $executeResponse = executionsStatusGet($webApiURL,$accessToken); $energy = $executeResponse["result"]["hungry_status"]["energy"]; switch($energy){ case "" : $energy_description = ""; $energy_description .= "状況が確認できませんでした。再度実行してください。"; break; case "satisfied": $energy_description = ""; $energy_description .= "チャージステーションの上で十分に充電されている(satisfied)"; break; case "eating" : $energy_description = ""; $energy_description .= "チャージステーションの上で充電中(eating)"; break; case "enough" : $energy_description = ""; $energy_description .= "チャージステーションの上におらず、十分に移動可能なほど充電されている(enough)"; break; case "hungry" : $energy_description = ""; $energy_description .= "チャージステーションの上におらず、移動はできるが充電が必要(hungry)"; break; case "famished" : $energy_description = ""; $energy_description .= "チャージステーションの上におらず、移動もできないほどバッテリー残量が少ない(famished)"; break; } $html_energyResult .= "". $nickname . "\n"; $html_energyResult .= "バッテリー\n"; $html_energyResult .= "". $energy_description . "\n"; } } //----------------------------------------------------------------------------------- // aiboの眠さ状態チェック //----------------------------------------------------------------------------------- $html_sleepResult .= ""; if (count($devices)){ foreach( $devices as $key => $value ){ $deviceId = $value["deviceId"]; $nickname = $value["nickname"]; //aiboのバッテリー残量チェック $executeResponse = cognitionApi($deviceId,$accessToken,'sleepy_status'); $executionId = $executeResponse->executionId; sleep(1); //// aiboの眠さ状態チェックの結果 $webApiURL = $aiboApiBaseURL ."/executions/" . $executionId; $executeResponse = executionsStatusGet($webApiURL,$accessToken); $status = $executeResponse["result"]["sleepy_status"]["status"]; switch($status){ case "" : $sleep_description = ""; $sleep_description .="状況が確認できませんでした。再度実行してください。"; break; case "no_sleepy" : $sleep_description = ""; $sleep_description .="まったく眠くなく、元気に活動中(no_sleepy)"; break; case "boring" : $sleep_description = ""; $sleep_description .= "刺激がなく、退屈な状態(boring)"; break; case "sleepy" : $sleep_description = ""; $sleep_description .= "眠くなってきた状態(sleepy)"; break; case "very_sleepy" : $sleep_description = ""; $sleep_description .="かなり眠く、もう少しで寝そうな状態(very_sleepy)"; break; } $html_sleepResult .= "". $nickname . "\n"; $html_sleepResult .= "眠さ状態\n"; $html_sleepResult .= "". $sleep_description . "\n"; } } //----------------------------------------------------------------------------------- // 状態結果作成 //----------------------------------------------------------------------------------- $html_CognitionResult = ""; $html_CognitionResult .= ""; $html_CognitionResult .= ""; $html_CognitionResult .= ""; $html_CognitionResult .= ""; $html_CognitionResult .= ""; $html_CognitionResult .= "\n"; $html_CognitionResult .= $html_energyResult ; $html_CognitionResult .= $html_sleepResult ; $html_CognitionResult .= "
状態確認一覧
ニックネーム確認内容確認結果
"; $html_CognitionResult .= ""; //----------------------------------------------------------------------------------- // aiboリストとPlay Motion リスト画面作成 //----------------------------------------------------------------------------------- $htmlDocument = << aibo連携アプリ ハッピーとラッキー

ハッピーとラッキーのお楽しみアプリ

$html_devices
$html_CognitionResult


【参考:デベロッパーサイトで定義されている状態】

◆HungryStatus 以下のいずれかの状態の取得が可能          
satisfiedチャージステーションの上で、十分に充電されている
eatingチャージステーションの上で充電中
enoughチャージステーションの上におらず、十分に移動可能なほど充電されている
hungryチャージステーションの上におらず、移動はできるが充電が必要
famishedチャージステーションの上におらず、移動もできないほどバッテリー残量が少ない


◆SleepyStatus以下のいずれかの状態の取得が可能        
no_sleepyまったく眠くなく、元気に活動中
boring刺激がなく、退屈な状態
sleepy眠くなってきた状態
very_sleepyかなり眠く、もう少しで寝そうな状態
EOD; echo $htmlDocument ; session_destroy(); } //--------------------------------------------------------------------------- // アクセストークンからデバイスIDを取得 // aiboApiGetDevices($webApiURL,$accessToken) //--------------------------------------------------------------------------- function aiboApiGetDevices($webApiURL,$accessToken){ $authorization = "Authorization:Bearer ". $accessToken; $headers = array( "cache-control: no-cache", "content-type: application/x-www-form-urlencoded", $authorization, ); $webApi = curl_init(); curl_setopt($webApi,CURLOPT_URL,$webApiURL ); curl_setopt($webApi,CURLOPT_CUSTOMREQUEST, 'GET' ); curl_setopt($webApi,CURLOPT_RETURNTRANSFER, true ); curl_setopt($webApi,CURLOPT_HTTPHEADER, $headers ); $json = curl_exec($webApi); $responce = json_decode($json,true); $err = curl_error($webApi); curl_close($webApi); return $responce; } //--------------------------------------------------------------------------- // 実行結果の取得 // executionsStatusGet($webApiURL,$accessToken) //--------------------------------------------------------------------------- function executionsStatusGet($webApiURL,$accessToken){ $authorization = "Authorization:Bearer ". $accessToken; $headers = array( "cache-control: no-cache", "content-type: application/x-www-form-urlencoded", $authorization, ); $webApi = curl_init(); curl_setopt($webApi,CURLOPT_URL,$webApiURL ); curl_setopt($webApi,CURLOPT_CUSTOMREQUEST, 'GET' ); curl_setopt($webApi,CURLOPT_RETURNTRANSFER, true ); curl_setopt($webApi,CURLOPT_HTTPHEADER, $headers ); $json = curl_exec($webApi); $response = json_decode($json,true); $err = curl_error($webApi); curl_close($webApi); return $response; } //--------------------------------------------------------------------------- // Cognition実行用のfunction // CognitionApi($deviceId,$accessToken,$Property); //--------------------------------------------------------------------------- function cognitionApi($deviceId,$accessToken,$Property){ $webApiURL = "https://public.api.aibo.com/v1/devices/".$deviceId ."/capabilities/".$Property."/execute" ; $authorization = "Authorization:Bearer ". $accessToken; $headers = array( "cache-control: no-cache", "content-type: application/x-www-form-urlencoded", $authorization, ); $postData = array('arguments'=> array('Property' => $Property )); $postData = json_encode($postData); $webApi = curl_init(); curl_setopt($webApi,CURLOPT_URL,$webApiURL ); curl_setopt($webApi,CURLOPT_CUSTOMREQUEST, 'POST' ); curl_setopt($webApi,CURLOPT_RETURNTRANSFER, true ); curl_setopt($webApi,CURLOPT_HTTPHEADER, $headers ); curl_setopt($webApi,CURLOPT_POSTFIELDS, $postData ); $json = curl_exec($webApi); $response = json_decode($json); $err = curl_error($webApi); curl_close($webApi); return $response; } //--------------------------------------------------------------------------- // WEBに最初にアクセスしたときに表示する画面のHTMLデータ作成 // htmlを $htmlStartWebsiteData で管理しています。 // プログラムを1本化するするために入れています(本当は別ファイルで読み込み) // // function htmlStartWebsite() // //--------------------------------------------------------------------------- function htmlStartWebsite(){ $htmlStartWebsiteData = << aiboWebApi ハッピーとラッキー

ハッピーとラッキーのお楽しみアプリ

はじめにお断り
このサイトは、aiboデベロッパープログラム・連携アプリをテストのためのサイトです。 アップデート確認しながら作っており、保証するものではありません。

aiboWebApi【Cognition API】
【aibo Web API とは】
 
aibo Web API とは、 インターネットを介して aibo にさまざまなことを行わせることができる Web API です。・・・・とSony aibo デベロッパーサイトに記載されています。

   aiboデベロッパーサイト

難しそうなことがいっぱい記載していますが、まずは、開発者設定にアクセスして、オーナさんのaiboさんにアクセスできるアクセストークンを取得してみましょうね。

(1)アクセストークンの取得しましょう

   アクセストークン取得

アクセストークンとは、API を利用するための認可情報が含まれた文字列です。有効期限内のアクセストークンを第三者に知られると、あなたの aibo を操作される可能性があります。 トークンの有効期限は、24時間、30日、90日から選ぶことができます。・・・との説明です。

アクセストークンは、aiboさんと連携するための重要な情報です。試験用でお使いになる場合は、有効期限【24時間】を指定、または、確認後に解除してくださいね。また、取得したアクセストークンは、再度確認できませんので、一度メモパッドなどでコピーしておくと、取り直しする必要がないので、適宜コピーして一時保存してくださいね。




   
まずはアクセストークンを使ってaiboさんの状況を確認しましょう
 【1】バッテリー残量チェック
【2】眠たさの状況チェック

開発者設定画面でアクセストークンを取得    アクセストークン取得
コピーしたアクセストークンを下の入力欄に貼り付けて下さい。
取得したアクセストークンとデバイスIDを使ってaiboさんの状況を確認できます。

 
注)aiboさんが電源オフ状態やスリープ状態だと確認できません。








EOD; return $htmlStartWebsiteData ; } //-ここまで-------------------------------------------------------------------------- // function htmlStartWebsite() //----------------------------------------------------------------------------------- ?>