サンプル/PHP/ユーザーAPI/写真類似検索
ダウンロード:sample_mobadaiapi_extraservice_UserRecognizePicture1.php
<?php
/**
* モバイルダイエットAPI ver.1 クライアントサンプル 写真類似検索
*
* モバイルダイエットAPIを使用して写真類似検索を実行するサンプル<br />
*
* @package MobadaiSample
* @author west@imd.co.jp
* @version 1.0
*/
require_once 'HTTP/Request2.php';
define(APPKEY, "*****__FILL_IT!!__*****"); // このクライアントのアプリケーションキー
define(APPSEC, "*****__FILL_IT!!__*****"); // このクライアントのアプリケーションシークレット
define(MYSCHEME, "*****__FILL_IT!!__*****"); // スキーマ, http or https
define(MYSERVER, "*****__FILL_IT!!__*****"); // サーバー名
define(MYACCESSCODE, "*****__FILL_IT!!__*****"); // アクセスコード
define(MY_CHARSET, "UTF-8"); // 結果の文字コード指定
define(MY_RESTYPE, "json"); // 結果のフォーマット
define(CGI_VERSION, "v"); // バージョン
define(CGI_COMMAND, "c"); // コマンド
define(CGI_CATEGORY, "Category"); // カテゴリー
define(CGI_OPERATION, "Operation"); // コマンド
define(CGI_APPKEY, "AppKey"); // アプリケーションキー
define(CGI_AUTHTYPE, "UserAuth"); // 認証タイプ
define(CGI_USERID, "uid"); // ユーザーID
define(CGI_LOGINID, "loginid"); // ログインID
define(CGI_PASSWORD, "password"); // パスワード
define(CGI_STRUCTDATA, "StructData"); // アップロードXML
define(CGI_PICT, "Pict"); // 画像データ変数のプレフィックス
define(CGI_FORMAT, "Format"); // フォーマット
define(CGI_CHARSET, "Charset"); // 文字コード
$apiurl = MYSCHEME."://".MYSERVER."/services/api/".MYACCESSCODE."/";
echo "--- Request URL\n";
echo $apiurl."\r\n";
$my_uid = '****対象アカウントのモバイルダイエットID****'; // どちらか必須
$my_loginid = '****対象アカウントのログインID****'; // どちらか必須
$my_password = '****パスワード****';
$request = new HTTP_Request2($apiurl, HTTP_Request2::METHOD_POST);
$request->setConfig(
array(
'timeout' => 300,
'ssl_verify_host' => false,
'ssl_verify_peer' => false,
)
);
if( $my_uid ){
$idkey = CGI_USERID;
$idval = $my_uid;
}
if( $my_loginid ){
$idkey = CGI_LOGINID;
$idval = $my_loginid;
}
// 画像データを作成
$pictdate = strftime("%Y/%m/%d %H:%M:%S"); // 写真の日時
$pictfile = "*****__FILL_IT!!__*****"; // 写真データ(任意のデータを用意)
$picthash = sha1_file($pictfile); // 写真データのハッシュ値
$uploadid = sprintf('%d', time()); // アップロードID(任意の文字列)
$xml = "<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<CallService>
<ServiceName>UserRecognizePicture1</ServiceName>
<pictset>
<pictobject>
<type>0</type>
<date>$pictdate</date>
<uploadid>$uploadid</uploadid>
<uploadhash>$picthash</uploadhash>
</pictobject>
</pictset>
</CallService>";
// リクエストパラメータを生成
$req_param = array(
CGI_VERSION => 1,
CGI_APPKEY => APPKEY,
CGI_COMMAND => "Bu",
CGI_CATEGORY => "XST",
CGI_OPERATION => "cal",
CGI_AUTHTYPE => "userhashbb",
$idkey => $idval,
CGI_PASSWORD => sha1(APPSEC.$my_password),
CGI_STRUCTDATA => $xml,
CGI_FORMAT => MY_RESTYPE,
CGI_CHARSET => MY_CHARSET,
);
echo "--- Request Param\n";
var_dump($req_param);
echo "\n";
$request->addPostParameter($req_param);
// 画像データを追加
$request->addUpload(CGI_PICT.$uploadid, $pictfile);
try {
// リクエスト送出
$response = $request->send();
}
catch (Exception $e) {
echo "--- Exception\n";
echo $e->getMessage();
echo "\n";
exit(0);
}
if( $response->getStatus() != 200 ){
echo "HTTP Response Status Error ".$response->getStatus()."\n";
exit(0);
}
$json_resp = json_decode($response->getBody());
echo "--- Response Param\n";
if( $json_resp ){
var_dump($json_resp);
} else {
echo $response->getBody();
}
echo "\n";
?>
アプリケーションキー: 53apb85KgOLhiOPG
アプリケーションシークレット: MYjNWjP7tQKaMjQzzbyGb931
$ php ./sample_mobadaiapi_extraservice_UserRecognizePicture1.php
--- Request URL
http://******.mobadai.jp/services/api/***/
--- Request Param
array(11) {
["v"]=>
int(1)
["AppKey"]=>
string(16) "53apb85KgOLhiOPG"
["c"]=>
string(2) "Bu"
["Category"]=>
string(3) "XST"
["Operation"]=>
string(3) "cal"
["UserAuth"]=>
string(10) "userhashbb"
["loginid"]=>
string(4) "west"
["password"]=>
string(40) "3895f393d57ca857525de02384a492f135adc3e1"
["StructData"]=>
string(358) "<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<CallService>
<ServiceName>UserRecognizePicture1</ServiceName>
<pictset>
<pictobject>
<type>0</type>
<date>2014/03/25 08:41:27</date>
<uploadid>1395704487</uploadid>
<uploadhash>34c1879dd2c64a17cd31e37d7f37128e6d818a0e</uploadhash>
</pictobject>
</pictset>
</CallService>"
["Format"]=>
string(4) "json"
["Charset"]=>
string(5) "UTF-8"
}
--- Response Param
{"api_result":true,"api_rescode":1,"struct":[{"feedingdate":"2012\/12\/04 09:44
:00","refpict":{"pictid":"VyJfFZQpFoZvhlSC9jpA1EoB","size":128,"type":"userpict
lib"},"foodobject":[{"objectid":"FO01192397471c08790585fb12","quantity":"1.0000
"},{"objectid":"FO9a58f57646c9455b3ecac928","quantity":"1.0000"}]},{"feedingdat
e":"2013\/03\/11 07:40:56","refpict":{"pictid":"a39J2RZygXFxnZyIyrm3162D","size
":128,"type":"userpictlib"},"foodobject":[{"objectid":"FOffbf77ba470b1f767c74f5
81","quantity":"1.0000"},{"objectid":"FO26a31797469c6a95232ff62c","quantity":"1
.0000"}]},{"feedingdate":"2014\/01\/10 08:08:19","refpict":{"pictid":"iJPIs2zve
vg7iJdXhhwC2Cri","size":128,"type":"userpictlib"},"foodobject":[{"objectid":"FO
7d2e0e054666526c37c5d5a6","quantity":"1.0000"},{"objectid":"FO602dd9eb47944ae36
e71e45e","quantity":"1.0000"},{"objectid":"FO3cc1bb8745d44ff97ba8c6fe","quantit
y":"1.0000"}]},{"feedingdate":"2014\/01\/10 08:08:19","refpict":{"pictid":"Ret4
H4mNkZVVrMYTii7HswPn","size":128,"type":"userpictlib"},"foodobject":[{"objectid
":"FO7d2e0e054666526c37c5d5a6","quantity":"1.0000"},{"objectid":"FO602dd9eb4794
4ae36e71e45e","quantity":"1.0000"},{"objectid":"FO3cc1bb8745d44ff97ba8c6fe","qu
antity":"1.0000"}]},{"feedingdate":"2012\/12\/04 07:54:00","refpict":{"pictid":
"WSJSotkB1Toyi16s6QXWXION","size":128,"type":"userpictlib"},"foodobject":[{"obj
ectid":"FO1b51315c46f214e00b3fab1c","quantity":"1.0000"},{"objectid":"FOd1b3e99
e469dc4cb4fbb3092","quantity":"1.0000"},{"objectid":"FOc52395c24693075f5c102b3f
","quantity":"1.0000"}]},{"feedingdate":"2012\/12\/05 13:15:00","refpict":{"pic
tid":"c9ebUxXlTJJyw9TH","size":128,"type":"userpictlib"},"foodobject":[{"object
id":"FO602dd9eb47944ae36e71e45e","quantity":"1.0000"},{"objectid":"FO5892bf0646
d30840313f81ba","quantity":"1.0000"},{"objectid":"FO9c47eb4d4cc7b0f93466b0e9","
quantity":"1.0000"},{"objectid":"FO3c114d6547a610b90a2934b4","quantity":"1.0000
"},{"objectid":"FO32f019e246d3080953e8b809","quantity":"1.0000"}]}]}
$