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

はじめに、お断り
このサイトは、aiboデベロッパープログラム・連携アプリをテストのためのサイトです。 アップデート確認しながら作っており、ちゃんと連携ができるようなものができてから 紹介アップしたいと思います。

連携アプリのイメージ
【1】aibo 連携アプリとは
aibo 連携アプリとは、aibo Web API や aibo Events API を用いた aibo とつながるアプリケーションやサービスです。・・・・とSony aibo デベロッパーサイトに記載されています。
aiboデベロッパーサイト

難しそうなことがいっぱい記載していますが、まずは、開発者設定で
 【1】基本情報
   (1)連携アプリ名
   (2)連携アプリ名(英語)
   (3)連携アプリの説明
   (4)提供者名
   (5)提供者名(英語)
   (6)提供元の連絡先(メールアドレス)
   (7)提供元の連絡先(電話番号)
   (8)提供元サイト

 【2】サーバ設定
   (1)連携アプリのエントリーURL
   (2)認証後のリダイレクトURL

  を入れて

 【3】認証情報から
   (1)クライアントIDを取得
   (2)認可エンドポイントを取得

https://myaibo.aibo.sony.jp/account_link.html?state=${state}&client_id=(クライアントID)&scope=pub&redirect_uri=(認証後のリダイレクトURL)&response_type=code にアクセスすると認証画面が表示され、aibo連携アプリするための同意画面が表示されます


デバッグ用表示CODE:$code

    
まずは連携をやってみよう

aibo連携アプリの認証サイト


アクセスするとSONYの認証サイトに接続します。許可してサインイン成功すると認証完了
認証には、sonyサイト aiboで登録されているID/パスワードが必要となります
EOD; if (!$code){ echo $stat_html ; } //初期画面表示 ////////////////////////////////////////////////////////////////// // //認証完了後にトークンを取得するための処理 // // リクエストには、{$client_id}{$client_secret}を使って // grant_type:authorization_code // codeには認証時に取得したcodeを利用 // ////////////////////////////////////////////////////////////////// $code = $_GET['code']; if ($code){ //////////////////////////////////// //トークン発行 サーバへのリクエスト //////////////////////////////////// $code = $_GET['code']; $params = "client_id={$client_id}&client_secret={$client_secret}&grant_type=authorization_code&code={$code}"; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "{$base_url}/oauth2/token", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => $params, CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/x-www-form-urlencoded" ), )); $response1 = curl_exec($curl); $err = curl_error($curl); curl_close($curl); //////////////////////////////////// //トークン取得 //////////////////////////////////// $data = json_decode($response1); $accessToken = $data->{'access_token'}; ////////////////////////////////////////////////////////////////// // 【1】アイボに関するデバイス情報取得 // サーバへのリクエスト ////////////////////////////////////////////////////////////////// $params = "Authorization:Bearer ". $accessToken; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "{$base_url}/devices", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/x-www-form-urlencoded", $params ), )); $response2 = curl_exec($curl); $err = curl_error($curl); curl_close($curl); ////////////////////////////////////////////////////////////////// // 取得したデータ処理 // アクセストークン処理 ////////////////////////////////////////////////////////////////// $data1 = json_decode($response1); $access_token = $data1->{'access_token' }; $refresh_token = $data1->{'refresh_token'}; $token_type = $data1->{'token_type' }; $expires_in = $data1->{'expires_in' }; ////////////////////////////////////////////////////////////////// // アイボのデバイス情報処理 ////////////////////////////////////////////////////////////////// $data2 = json_decode($response2,true); $count = 1; $message = ""; foreach( $data2 as $key=>$devices ){ foreach( $devices as $key2=>$devices ){ $message = $message . "aibo " . $count ." 台目"; $count++; foreach( $devices as $property=>$value ){ $message = $message . "" . $property . "" . $value . "" ; } $message = $message . ""; } } ////////////////////////////////////////////////////////////////// // テスト画面 // トークン情報やアイボのデバイス情報などを取得して表示 ////////////////////////////////////////////////////////////////// $stat_html_results = << aibo連携アプリ ハッピーとラッキー

ハッピーとラッキーのお楽しみアプリ・認証結果

 
【1】初回認証・認可を行って正常に認証完了すると以下の情報が応答されます。  
IssueToken
ユーザーが連携アプリで認証を行った後、連携アプリがそのユーザーのアクセストークン・リフレッシュトークンを取得するためのAPI
access_token$access_token
refresh_token$refresh_token
token_type$token_type
expires_in$expires_in
 
【2】アイボの情報  
$message
GetDevices
所有している aibo の一覧を取得します。
 
 
上記表において情報が正常に表示されている場合、アプリと連携ができている状況です
以下のデベロッパーサイトの【利用中の連携アプリ】に【ハピラキのお楽しみアプリ】が連携となっているかと思います
テスト用なので解除してください

EOD; echo $stat_html_results ; } ?>