[[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;">
(単一の食事を登録した場合の例)
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;response&gt;
    &lt;api_result&gt;1&lt;/api_result&gt;
    &lt;registed&gt;1&lt;/registed&gt;
    &lt;struct&gt;
      &lt;item&gt;
        &lt;uploadid&gt;UPLOADID1391737522&lt;/uploadid&gt;
        &lt;opresult&gt;1&lt;/opresult&gt;
        &lt;mealid&gt;M27c7eae252f43ab43aee&lt;/mealid&gt;
        &lt;hashkey&gt;24eb337d8e95fef7a60f6b2e31d7f32a463a433b&lt;/hashkey&gt;
      &lt;/item&gt;
    &lt;/struct&gt;
  &lt;/response&gt;

(複数の食事を登録した場合の例)
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;response&gt;
    &lt;api_result&gt;1&lt;/api_result&gt;
    &lt;registed&gt;2&lt;/registed&gt;
    &lt;struct&gt;
      &lt;item&gt;
        &lt;uploadid&gt;UPLOADID1_1391737739&lt;/uploadid&gt;
        &lt;opresult&gt;1&lt;/opresult&gt;
        &lt;mealid&gt;M27c7eae252f43b8dbaef&lt;/mealid&gt;
        &lt;hashkey&gt;0dcd349f10520a6b85206f4bdb6b3910e135a17a&lt;/hashkey&gt;
      &lt;/item&gt;
      &lt;item&gt;
        &lt;uploadid&gt;UPLOADID2_52f43b8b&lt;/uploadid&gt;
        &lt;opresult&gt;1&lt;/opresult&gt;
        &lt;mealid&gt;M27c7eae252f43b8d5e3f&lt;/mealid&gt;
        &lt;hashkey&gt;a40bfc5c33a4ea9a4c980cfa9510841001e45405&lt;/hashkey&gt;
      &lt;/item&gt;
    &lt;/struct&gt;
  &lt;/response&gt;
</pre>
}}


* サンプル [#z5db7844]

PHPサンプル [[サンプル/PHP/ユーザーAPI/食事の記録]] &br;


* バージョン [#o0becc47]

このドキュメントのバージョン情報
|Version|1|
|Revision|1|
|Editor|west|

トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS