[[FrontPage]]
&size(24){ユーザーAPI/食事の記録};
* API情報 [#q6190828]
|~名称|食事の記録|
|~APIバージョン|1|
|~認証タイプ|ユーザー認証|
|~URL|https://(APIサーバー名)/services/api/(アクセスコード)/|
|~Method|POST|
|~データ形式|multipart/form-data|
* 概要 [#jfe13a2c]
食事データを登録する。
* パラメーター [#ya59d11f]
|引数名|値|型|必須|内容|h
|v|1(固定)|int定数|必須|バージョン番号&br;現在は1|
|c|Bu(固定)|string定数|必須|コマンド&br;Bu = ユーザー認証付きBBAPIを呼び出す|
|Category|UM(固定)|string定数|必須|オペレーションカテゴリー&br;UM = ユーザー食事データ|
|Operation|poo(固定)|string定数|必須|オペレーション&br;poo = PUTオペレーション|
|AppKey|アプリケーションキー|string|必須|アプリケーションキーペアのアプリケーションキー|
|UserAuth|ユーザー認証タイプ|string|必須|userhashbb|
|uid|モバイルダイエットID|string|uidまたはloginidのいずれか必須|ユーザーのモバイルダイエットID|
|loginid|ログインID|string|uidまたはloginidのいずれか必須|ユーザーのログインID|
|password|パスワードハッシュ値|hash|必須|sha1(アプリケーションシークレット+パスワード) の値|
|StructData|アップロードデータ|xml|必須|登録する食事データ|
|Pict(uploadid)|画像データ|binary|任意|XML中で指定された食事に付随する画像データ&br;1ファイルは最大で2Mバイトまで&br;(uploadid)部分は任意の文字列であってXML中で指定|
|Format|json,yaml,xml|string定数|任意|出力フォーマット指定&br;省略時json(またはアプリケーションキー毎に指定のフォーマット)|
|Charset|UTF-8,SJIS,EUC-JP|string定数|任意|出力文字コード指定・省略時UTF8&br;出力フォーマットjson,xml時は常にUTF-8|
認証パラメーターAppKey,UserAuth,uid,passwordについては、[[API認証>API認証#authtype_user]]を参照~
出力指定パラメーターFormat,Charsetについては、[[出力フォーマット]]を参照~
* アップロードデータXML [#d1118dc6]
** データ定義XML構成 [#sbcdc85d]
mealsetタグ: ルートノード
mealタグ: 食事データ [最低でも1つは必須]
(以下mealの中に配置可能)
feedingdateタグ: 食事の日時 [必須]
segmentタグ: 食事のセグメント [必須]
foodobjectタグ: 食事に含まれる食品データ [最低でも1つは必須]
pictobjectタグ: 食事に付随する画像データ [任意]
uploadidタグ: この食事に固有のアップロード識別ID [必須]
qreplacerタグ: 画像認識キュー置換データ(画像認識キューをこの食事で置換する場合に使用) [任意]
(以下foodobjectの中に配置可能)
objectidタグ: 食品オブジェクトID [必須]
quantityタグ: 食品の分量
(以下pictobjectの中に配置可能)
typeタグ: データタイプ (0で固定) [必須]
dateタグ: 写真の日付 [必須]
uploadidタグ: multipart/form-dataの画像データを含むパートの"Pict"を除いたパラメータ名 [必須]
uploadhashタグ: アップロードする画像データのsha1ハッシュ値 [必須]
(以下qreplacerの中に配置可能)
typeタグ: キュータイプ(imgrecognizerで固定) [必須]
entryidタグ: キューのエントリーID [必須]
- セグメント(segment)は、サービス提供者が定義する食事の区分。整数値(int)で表す。必要のない場合は1を与えることが推奨される。
- 食事固有アップロード識別ID(uploadid)は、アップロード側で保持する食事のID。アップロードした時のuploadidと、登録結果に返されるuploadidを検証し、アップロードが正常に行われたかを検証することが推奨される。
** XML例 [#g9ecbe25]
#html{{
<pre class="brush:xml;">
}}
#htmlinsert(samxml_mobadaiapi_meal_regist.xml)
#html{{
</pre>
}}
* 返値 [#e86e04c1]
|変数名|型|内容|h
|api_result|boolean|API実行結果&br;true:成功 false:失敗|
|registed|integer|登録された食事数|
|struct|array|登録データ結果の配列|
登録データ結果の配列
|変数名|型|内容|h
|uploadid|string|食事のアップロード識別ID|
|opresult|boolean|処理結果|
|mealid|string|モバイルダイエットDB内の食事ID|
|hashkey|hash|食事のハッシュ値|
** JSONの例 [#i0d756ca]
#html{{
<pre class="brush:xml;">
(単一の食事を登録した場合の例)
{
"api_result":true,
"registed":1,
"struct":[
{
"uploadid":"UPLOADID1391736908",
"opresult":true,
"mealid":"M27c7eae252f4384e8cd3",
"hashkey":"8575b6e13437287e8d30851753b7e3e39d69da5c"
}
]
}
(複数の食事を登録した場合の例)
{
"api_result":true,
"registed":2,
"struct":[
{
"uploadid":"UPLOADID1_1391737999",
"opresult":true,
"mealid":"M27c7eae252f43c913533",
"hashkey":"cc983eb6d77c4ba98d79d4ce2e8da613a7617db9"
},
{
"uploadid":"UPLOADID2_52f43c8f",
"opresult":true,
"mealid":"M27c7eae252f43c91ee40",
"hashkey":"a41469fec63e78a71356df92c447c758f3896ecf"
}
]
}</pre>
}}
** XMLの例 [#c9857f82]
#html{{
<pre class="brush:xml;">
(単一の食事を登録した場合の例)
<?xml version="1.0" encoding="UTF-8"?>
<response>
<api_result>1</api_result>
<registed>1</registed>
<struct>
<item>
<uploadid>UPLOADID1391737522</uploadid>
<opresult>1</opresult>
<mealid>M27c7eae252f43ab43aee</mealid>
<hashkey>24eb337d8e95fef7a60f6b2e31d7f32a463a433b</hashkey>
</item>
</struct>
</response>
(複数の食事を登録した場合の例)
<?xml version="1.0" encoding="UTF-8"?>
<response>
<api_result>1</api_result>
<registed>2</registed>
<struct>
<item>
<uploadid>UPLOADID1_1391737739</uploadid>
<opresult>1</opresult>
<mealid>M27c7eae252f43b8dbaef</mealid>
<hashkey>0dcd349f10520a6b85206f4bdb6b3910e135a17a</hashkey>
</item>
<item>
<uploadid>UPLOADID2_52f43b8b</uploadid>
<opresult>1</opresult>
<mealid>M27c7eae252f43b8d5e3f</mealid>
<hashkey>a40bfc5c33a4ea9a4c980cfa9510841001e45405</hashkey>
</item>
</struct>
</response>
</pre>
}}
* サンプル [#z5db7844]
PHPサンプル [[サンプル/PHP/ユーザーAPI/食事の記録]] &br;
* バージョン [#o0becc47]
このドキュメントのバージョン情報
|Version|1|
|Revision|1|
|Editor|west|