Zoho CRMのAPIで一覧取得サンプルソース

提供:wiki - PCスキルの小技・忘却防止メモ
移動: 案内, 検索

Zoho CRMのAPIで一覧取得サンプルソース

基本

getRecordsをやったときの戻り値(JSON)を整形したもの。

全パターンに対応していないのでモノによってはエラーになる。単純にvar_dmp()だけの方が良いかもしれない。

修正しないといけない項目

  • $token - 自身のトークン

※必要に応じて、モジュール・APIメソッドやパラメータを修正すれば色々と取得できると思う。

ソース

見ているとデータの格納方法はキーバリューみたいな感じだね。携帯番号とか情報を登録していないと結果に出てこない(パラメータ次第で表示も可能)。

<?php
 	// 認証トークンなど
 	$token = "「トークン」";
 	$scope = "crmapi";
 	$auth = "authtoken={$token}&scope={$scope}";
 	
 	// 取得形式:json or xml
 	$format = "json";
 	
 	// モジュール(データベースで言うトコのテーブル名)
 	$module = "Leads";
 	
 	// API Methods
 	$api = "getRecords";
 	
 	// パラメーター
 	//$pram = "&selectColumns=Leads(Lead Owner,First Name,Last Name,Email)";
 	$pram = "";
 	$convParm = preg_replace('/ /', '+', $pram);
 	
 	// 設定ここまで ===============
 	function makeTr($flAry) {
 		$tr = "";
 		$flType = gettype($flAry);
 		if ($flType == "array") {
 			$j = 1;
 			foreach($flAry as $fl) {
 				$tr .= "<tr><th>{$j}</th><th>{$fl->val}</th><td>{$fl->content}</td></tr>\n";
 				$j++;
 			}
 		}
 		else {
 			$tr .= "<tr><th>-</th><td colspan='2'>{$flAry}</td></tr>\n";
 		}
 		return $tr;
 	}
 	
 	$url = "https://crm.zoho.com/crm/private/{$format}/{$module}/{$api}?{$auth}{$convParm}";
 	
 	$source = file_get_contents($url);
 	$sourceObj = json_decode($source);
 	
 	$result = "";
 	if ( property_exists($sourceObj->response, "result") === false) {
 		if ( property_exists($sourceObj->response, "nodata") !== false) {
 			$result .= "<h2>nodata</h2>";
 			$result .= $sourceObj->response->nodata->code . ": ";
 			$result .= $sourceObj->response->nodata->message;
 		}
 		if ( property_exists($sourceObj->response, "error") !== false) {
 			$result .= "<h2>error</h2>";
 			$result .= $sourceObj->response->error->code . ": ";
 			$result .= $sourceObj->response->error->message;
 		}
 	}
 	else {
 		$rowAry = $sourceObj->response->result->$module->row;
 		
 		$rowType = gettype($rowAry);
 		if ($rowType == "array") {
 			foreach($rowAry as $num=>$row) {
 				$cap = "<h2>{$num}</h2>\n";
 				$tr = makeTr($row->FL);
 				
 				$result .= $cap . "<table>\n" . $tr . "</table>\n";
 			}
 		}
 		else if ($rowType == "object"){
 			foreach($rowAry as $num=>$row) {
 				$cap = "<h2>{$num}</h2>\n";
 				$tr = makeTr($row);
 				
 				$result .= $cap . "<table>\n" . $tr . "</table>\n";
 			}
 		}
 	}
 ?>
 <!DOCTYPE html>
 <html dir="ltr" lang="ja">
 <head>
 <meta charset="UTF-8" />
 <title>ZOHO CRM</title>
 <style>
 	* {font-family:"メイリオ";}
 	h2 {
 		margin:1em 0 0;
 		font-size:1.5em;
 	}
 	table {
 		margin:0.5em 0 0;
 		border-collapse:collapse;
 	}
 	th, td{
 		text-align:left;
 		vertical-align:top;
 		padding:3px;
 		border:1px solid #ccc;
 		font-size:10pt;
 	}
 	th{
 		background:#eee;
 	}
 </style>
 </head>
 <body>
 <?php
 	echo "<h1>モジュール「API Format: {$module}」</h1>";
 	echo "指定したuri: " . $url . "<br />\n";
 	echo "APIが認識したuri: " . $sourceObj->response->uri . "<br />\n";
 	echo "<hr>";
 	
 	echo $result;
 	echo "<hr>";
 	
 	echo "<pre>";
 	print_r($sourceObj);
 	echo "</pre>";
 ?>
 </body>
 </html>

関連項目