FrontPage

サンプル/PHP/ユーザーAPI/食事の記録

サンプルコード

ダウンロード:sample_mobadaiapi_meal_regist.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;
	}
	

	// 食事データを作成

	$mealdate	= strftime("%Y/%m/%d %H:%M:%S");	// 食事の日時
	$pictdate	= strftime("%Y/%m/%d %H:%M:%S");	// 写真の日時
	$pictfile	= "./mealpictsample.jpg";	// 写真データ(任意のデータを用意)
	$picthash	= sha1_file($pictfile);		// 写真データのハッシュ値
	$pictcgi	= "UpLoAdEdPictxxx";		// 写真データのCGI名(任意の文字列)
	$uploaded1	= "UPLOADID1_".sprintf('%d', time());	// アップロードID(任意の文字列)
	$uploaded2	= "UPLOADID2_".sprintf('%x', time());	// アップロードID(任意の文字列)
	
	$xml	= "<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<mealset>
	<meal>
		<feedingdate>$mealdate</feedingdate>
		<segment>1</segment>
		<foodobject>
			<objectid>FO7d2e0e054666526c37c5d5a6</objectid>
			<quantity>1.0</quantity>
		</foodobject>
		<foodobject>
			<objectid>FO602dd9eb47944ae36e71e45e</objectid>
			<quantity>1.0</quantity>
		</foodobject>
		<foodobject>
			<objectid>FO3cc1bb8745d44ff97ba8c6fe</objectid>
			<quantity>1.0</quantity>
		</foodobject>
		<pictobject>
			<type>0</type>
			<date>$pictdate</date>
			<uploadid>$pictcgi</uploadid>
			<uploadhash>$picthash</uploadhash>
		</pictobject>
		<uploadid>$uploaded1</uploadid>
	</meal>
	<meal>
		<feedingdate>$mealdate</feedingdate>
		<segment>1</segment>
		<foodobject>
			<objectid>FOc3b36c434682c01d0f5abba7</objectid>
			<quantity>2.0</quantity>
		</foodobject>
		<uploadid>$uploaded2</uploadid>
	</meal>
</mealset>";

	// リクエストパラメータを生成
	$req_param	= array(
		CGI_VERSION		=> 1,
		CGI_APPKEY		=> APPKEY,
		CGI_COMMAND		=> "Bu",
		CGI_CATEGORY	=> "UM",
		CGI_OPERATION	=> "poo",
		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.$pictcgi, $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";

?>
 

実行例

アプリケーションキー: VxXEBg9fHDLnzuNb
アプリケーションシークレット: IWMtlWEB76IEHYNGMucZCyqX

$ php ./sample_mobadaiapi_meal_regist.php
--- Request URL
http://******.mobadai.jp/services/api/***/
--- Request Param
array(11) {
  ["v"]=>
  int(1)
  ["AppKey"]=>
  string(16) "VxXEBg9fHDLnzuNb"
  ["c"]=>
  string(2) "Bu"
  ["Category"]=>
  string(2) "UM"
  ["Operation"]=>
  string(3) "poo"
  ["UserAuth"]=>
  string(10) "userhashbb"
  ["loginid"]=>
  string(12) "qojzpsrhyqdi"
  ["password"]=>
  string(40) "19a1b010db87117beefa50d118377d337fbafccd"
  ["StructData"]=>
  string(975) "<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<mealset>
        <meal>
                <feedingdate>2014/02/07 10:53:19</feedingdate>
                <segment>1</segment>
                <foodobject>
                        <objectid>FO7d2e0e054666526c37c5d5a6</objectid>
                        <quantity>1.0</quantity>
                </foodobject>
                <foodobject>
                        <objectid>FO602dd9eb47944ae36e71e45e</objectid>
                        <quantity>1.0</quantity>
                </foodobject>
                <foodobject>
                        <objectid>FO3cc1bb8745d44ff97ba8c6fe</objectid>
                        <quantity>1.0</quantity>
                </foodobject>
                <pictobject>
                        <type>0</type>
                        <date>2014/02/07 10:53:19</date>
                        <uploadid>UpLoAdEdPictxxx</uploadid>
                        <uploadhash>34c1879dd2c64a17cd31e37d7f37128e6d818a0e</uploadhash>
                </pictobject>
                <uploadid>UPLOADID1_1391737999</uploadid>
        </meal>
        <meal>
                <feedingdate>2014/02/07 10:53:19</feedingdate>
                <segment>1</segment>
                <foodobject>
                        <objectid>FOc3b36c434682c01d0f5abba7</objectid>
                        <quantity>2.0</quantity>
                </foodobject>
                <uploadid>UPLOADID2_52f43c8f</uploadid>
        </meal>
</mealset>"
  ["Format"]=>
  string(4) "json"
  ["Charset"]=>
  string(5) "UTF-8"
}

--- Response Param
object(stdClass)#5 (3) {
  ["api_result"]=>
  bool(true)
  ["registed"]=>
  int(2)
  ["struct"]=>
  array(2) {
    [0]=>
    object(stdClass)#7 (4) {
      ["uploadid"]=>
      string(20) "UPLOADID1_1391737999"
      ["opresult"]=>
      bool(true)
      ["mealid"]=>
      string(21) "M27c7eae252f43c913533"
      ["hashkey"]=>
      string(40) "cc983eb6d77c4ba98d79d4ce2e8da613a7617db9"
    }
    [1]=>
    object(stdClass)#8 (4) {
      ["uploadid"]=>
      string(18) "UPLOADID2_52f43c8f"
      ["opresult"]=>
      bool(true)
      ["mealid"]=>
      string(21) "M27c7eae252f43c91ee40"
      ["hashkey"]=>
      string(40) "a41469fec63e78a71356df92c447c758f3896ecf"
    }
  }
}
$

 

トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-02-07 (金) 10:58:24