ZOHO CRM 試してみた #5

ZOHO CRMからデータを取り出して利用する必要があったのでやってみました

取り出した後の値の取得(PHP)

前回の記事で、$result  に ZOHO CRMに結果データを格納することができました

実はこの後、項目毎の値の取り出し方が分からずハマりました (>_<)

XMLとかJSONとか扱いなれてないので、適当なメソッドがないかネットで探したのですが。。。

最初 JSONで探したのですがなかなか思うように動かず、結局一旦断念して

XMLで探すことにしました

結局、探し当てた例がコチラです (ページの下の方のコード例)

URL = http://stackoverflow.com/questions/34504198/parsing-xml-returned-by-zoho-crm-api

 

$resultにXML形式でZOHOから抽出したデータがあるとして

掲載されていたサンプルコードを真似ると以下のようになります(取引先=Accountsの場合)

$sxo = simplexml_load_string($result, null, LIBXML_NOCDATA);
$data = ($sxo->xpath('/response/result/Accounts/row'));
$arrVariables = array("ACCOUNTID", "Account Name", "Phone", "Website", "Billing State", "Billing Code", "Modified Time");
$retArr = NULL;

foreach($data as $row) // Iterate over all the results
{
foreach($arrVariables as $arrVar) // Iterate through the variables we're looking for
{
$rowData = ($row->xpath('FL[@val="'.$arrVar.'"]'));
@$arrReturn[$arrVar] = (string)$rowData[0][0];
}
$retArr[] = $arrReturn;
}

ここで、

$arrVariables に取り出したい項目名を指定しますが、ここでは標準項目だけを指定

カスタム項目の場合は注意点があるので、別途記載したいと思います

実行すると  $retArr[] に項目名と値が配列として格納されました

確認のため以下のコードを書いて実行(稚拙なコード自体はお許しください)

$i = 0;
while ($i < sizeof($retArr)){
print $i."<BR>";
print "Account ID: ".$retArr[$i]['ACCOUNTID']."<BR>";
print "Account Name: ".$retArr[$i]['Account Name']."<BR>";
print "Phone: ".$retArr[$i]['Phone']."<BR>";
print "Website: ".$retArr[$i]['Website']."<BR>";
print "Prefecture: ".$retArr[$i]['Billing State']."<BR>";
print "Zip Code: ".$retArr[$i]['Billing Code']."<BR>";
print "Modified Time: ".$retArr[$i]['Modified Time']."<BR>";
print "<BR>";
$i++;
}

確かに 取り出した値が表示されました

後は煮るなり焼くなりご自由に。。。ですね (^^♪

一応、これまでの手順で

ZOHO CRMからデータを取り出し、項目と値を取り扱うことができるようになりました

なお、細かなところでは、留意点や気になった点があります  (^^;

➡ 次へ

あわせて読みたい