でリンクを設定 //----------------------------------------------------------------------------------- if ($_GET['access_token']){ $webApiURL = $aiboApiBaseURL . "/devices"; //デベロッパーサイト GET /v1/devices $accessToken = $_GET['access_token']; //入力したアクセストークン $aiboDevices = aiboApiGetDevices($webApiURL,$accessToken); //アクセストークンからDeviceIDを取得 $devices = $aiboDevices["devices"]; //デバイス連想配列情報抽出 $deviceId = $_GET['nickname' ]; $Category = $_GET['Category' ]; $Mode = $_GET['Mode' ]; $Description = $_GET['Description']; if($Category){ $executeResponse = PlayMotion($deviceId,$accessToken,$Category,$Mode); } //----------------------------------------------------------------------------------- // デバイスIDを表形式で作成 //----------------------------------------------------------------------------------- $html_devices = "
"; $html_devices .= ""; $html_devices .= "\n"; $html_devices .= "\n"; $checkRadio = "checked"; if (count($devices)){ foreach( $devices as $key => $value ){ $deviceId = $value["deviceId"]; $nickname = $value["nickname"]; $html_devices .= ""; $html_devices .= ""; $html_devices .= ""; $html_devices .= ""; $html_devices .= ""; } }else{ $html_devices .= ""; $html_devices .= ""; } $html_devices .= "
所有している aibo 一覧(振る舞いをしたいaiboを選択してください)
選択
ニックネームDeviceId
"; $html_devices .= ""; $checkRadio = ""; $html_devices .= "
$nickname$deviceId

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


"; //----------------------------------------------------------------------------------- // Play Motion テキスト情報 読みこみ fileName=PlayMotion.txt // アクセス用の一覧リスト作成 //----------------------------------------------------------------------------------- $html_PlayMotionList = ""; $html_PlayMotionList .= ""; $html_PlayMotionList .= ""; $html_PlayMotionList .= ""; $html_PlayMotionList .= ""; $html_PlayMotionList .= ""; $html_PlayMotionList .= "\n"; $filename = 'PlayMotion.txt'; $file = new SplFileObject($filename); $file->setFlags(SplFileObject::READ_CSV); foreach ($file as $line) { $html_PlayMotionList .= "" ; $html_PlayMotionList .= "" ; $html_PlayMotionList .= "\n" ; } $html_PlayMotionList .= "
Play Motion 一覧
CategoryModeDescription
"; $html_PlayMotionList .= "" ; $html_PlayMotionList .= $line[0] ."" .$line[1] ."" .$line[2] ."
"; $html_PlayMotionList .= "\n"; $html_PlayMotionList .= "\n"; $html_PlayMotionList .= "\n"; $html_PlayMotionList .= "\n"; $html_PlayMotionList .= "
"; //----------------------------------------------------------------------------------- // aiboリストとPlay Motion リスト画面作成 //----------------------------------------------------------------------------------- $htmlDocument = << aibo連携アプリ ハッピーとラッキー

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

$html_devices
$html_PlayMotionList


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; } //--------------------------------------------------------------------------- // PlayMotion の実行用のfunction // PlayMotion($deviceId,$accessToken,$Category,$Mode) //--------------------------------------------------------------------------- function PlayMotion($deviceId,$accessToken,$Category,$Mode){ $webApiURL = "https://public.api.aibo.com/v1/devices/".$deviceId ."/capabilities/play_motion/execute" ; $authorization = "Authorization:Bearer ". $accessToken; $headers = array( "cache-control: no-cache", "content-type: application/x-www-form-urlencoded", $authorization, ); $postData = array('arguments'=> array ( 'Category' => $Category,'Mode'=> $Mode )); $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); $responce = json_decode($json); $err = curl_error($webApi); curl_close($webApi); return $responce; } //--------------------------------------------------------------------------- // WEBに最初にアクセスしたときに表示する画面のHTMLデータ作成 // htmlを $htmlStartWebsiteData で管理しています。 // プログラムを1本化するするために入れています(本当は別ファイルで読み込み) // // function htmlStartWebsite() // //--------------------------------------------------------------------------- function htmlStartWebsite(){ $htmlStartWebsiteData = << aiboWebApi ハッピーとラッキー

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

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

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

   aiboデベロッパーサイト

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

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

   アクセストークン取得

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

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




   
まずはアクセストークンを使ってaiboさんに振る舞いをやってもらいましょう

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

 









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