Parse/Decode 响应(Json 格式?)- PHP 卷曲
Parse/Decode response (Json format?) - PHP Curl
我正在使用 PHP Curl 将 html 表单数据推送到创建记录的 CRM (Zoho)。
创建记录后的响应(echo $response;):
*记录添加成功*3442526000000497019*2018-09-04 11:32:312018-09-04 11:32:31*
我想parse/decode这个响应($response),提取记录ID(3442526000000497019)。
在 thre CRM API SDK 中,它说明了一些关于 json 格式的响应。
因此,我尝试用 json_decode 函数解码响应:
var_dump(json_decode($responser));
var_dump(json_decode($responser, true));
但是,这个returns是一个NULL(如果json无法解码或者如果编码数据比递归限制更深,则返回NULL。)而不是一个数组。
我将不胜感激任何指向好的方向的提示、暗示和指点。我必须以其他方式对其进行解码吗?
我的脚本的以下摘录显示了如何插入表单数据(作为 XML 通过 php Curl 将数据插入 CRM):
<?php
$xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<Leads>
<row no=\"1\">
<FL val=\"Uhrzeit\">".$uhrzeit."</FL>
<FL val=\"Datum\">".$datum."</FL>
<FL val=\"First Name\">'Mad'</FL>
<FL val=\"Last Name\">'Dog'</FL>
<FL val=\"Phone\">".$phone."</FL>
<FL val=\"Email\">".$email."</FL>
<FL val=\"Zip Code\">".$postcode."</FL>
<FL val=\"fuerwen\">".$fuerwen."</FL>
<FL val=\"pflegegrad\">".$pflegegrad."</FL>
<FL val=\"mobilitaet\">".$mobilitaet."</FL>
<FL val=\"sprache\">".$sprache."</FL>
<FL val=\"betreuungsbeginn\">".$zeitpunkt."</FL>
</row>
</Leads>";
$auth="fewfwefwe";
$url ="https://crm.zoho.com/crm/private/xml/Leads/insertRecords";
$query="authtoken=".$auth."&scope=crmapi&newFormat=1&xmlData=".$xml;
$ch = curl_init();
/* set url to send post request */
curl_setopt($ch, CURLOPT_URL, $url);
/* allow redirects */
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
/* return a response into a variable */
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
/* times out after 30s */
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
/* set POST method */
curl_setopt($ch, CURLOPT_POST, 1);
/* add POST fields parameters */
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);// Set the request as a POST FIELD for curl.
//Execute cUrl session
$responser = curl_exec($ch);
curl_close($ch);
echo $responser;
var_dump(json_decode($responser));
var_dump(json_decode($responser, true));
亲切的问候
莱昂诺尔
CRM API SDK 已实施以处理 ZOHO CRM API 版本 2,您引用的代码正在调用 API 版本 1。
您正在 XML API 发帖,因此您应该会收到 XML 回复。
如果您想要 json 响应,请考虑将 API URL 中的 XML 部分更改为 JSON,如下所示:https://crm.zoho.com/crm/private/json/Leads/insertRecords 并且它应该接受与 XML API.
完全相同的参数
这是一个示例响应:
{"response":{"result":{"recorddetail":{"FL":[{"val":"Id","content":"3442526888888888888"},{"val":"Created Time","content":"2018-09-11 14:21:31"},{"val":"Modified Time","content":"2018-09-11 14:21:31"},{"val":"Created By","content":"Jon Deo"},{"val":"Modified By","content":"Jon Deo"}]},"message":"Record(s) added successfully"},"uri":"/crm/private/json/Leads/insertRecords"}}
请考虑从您的问题中删除 authtoken,因为它现在是 public!
我正在使用 PHP Curl 将 html 表单数据推送到创建记录的 CRM (Zoho)。
创建记录后的响应(echo $response;):
*记录添加成功*3442526000000497019*2018-09-04 11:32:312018-09-04 11:32:31*
我想parse/decode这个响应($response),提取记录ID(3442526000000497019)。
在 thre CRM API SDK 中,它说明了一些关于 json 格式的响应。
因此,我尝试用 json_decode 函数解码响应:
var_dump(json_decode($responser));
var_dump(json_decode($responser, true));
但是,这个returns是一个NULL(如果json无法解码或者如果编码数据比递归限制更深,则返回NULL。)而不是一个数组。
我将不胜感激任何指向好的方向的提示、暗示和指点。我必须以其他方式对其进行解码吗?
我的脚本的以下摘录显示了如何插入表单数据(作为 XML 通过 php Curl 将数据插入 CRM):
<?php
$xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<Leads>
<row no=\"1\">
<FL val=\"Uhrzeit\">".$uhrzeit."</FL>
<FL val=\"Datum\">".$datum."</FL>
<FL val=\"First Name\">'Mad'</FL>
<FL val=\"Last Name\">'Dog'</FL>
<FL val=\"Phone\">".$phone."</FL>
<FL val=\"Email\">".$email."</FL>
<FL val=\"Zip Code\">".$postcode."</FL>
<FL val=\"fuerwen\">".$fuerwen."</FL>
<FL val=\"pflegegrad\">".$pflegegrad."</FL>
<FL val=\"mobilitaet\">".$mobilitaet."</FL>
<FL val=\"sprache\">".$sprache."</FL>
<FL val=\"betreuungsbeginn\">".$zeitpunkt."</FL>
</row>
</Leads>";
$auth="fewfwefwe";
$url ="https://crm.zoho.com/crm/private/xml/Leads/insertRecords";
$query="authtoken=".$auth."&scope=crmapi&newFormat=1&xmlData=".$xml;
$ch = curl_init();
/* set url to send post request */
curl_setopt($ch, CURLOPT_URL, $url);
/* allow redirects */
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
/* return a response into a variable */
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
/* times out after 30s */
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
/* set POST method */
curl_setopt($ch, CURLOPT_POST, 1);
/* add POST fields parameters */
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);// Set the request as a POST FIELD for curl.
//Execute cUrl session
$responser = curl_exec($ch);
curl_close($ch);
echo $responser;
var_dump(json_decode($responser));
var_dump(json_decode($responser, true));
亲切的问候 莱昂诺尔
CRM API SDK 已实施以处理 ZOHO CRM API 版本 2,您引用的代码正在调用 API 版本 1。
您正在 XML API 发帖,因此您应该会收到 XML 回复。
如果您想要 json 响应,请考虑将 API URL 中的 XML 部分更改为 JSON,如下所示:https://crm.zoho.com/crm/private/json/Leads/insertRecords 并且它应该接受与 XML API.
完全相同的参数这是一个示例响应:
{"response":{"result":{"recorddetail":{"FL":[{"val":"Id","content":"3442526888888888888"},{"val":"Created Time","content":"2018-09-11 14:21:31"},{"val":"Modified Time","content":"2018-09-11 14:21:31"},{"val":"Created By","content":"Jon Deo"},{"val":"Modified By","content":"Jon Deo"}]},"message":"Record(s) added successfully"},"uri":"/crm/private/json/Leads/insertRecords"}}
请考虑从您的问题中删除 authtoken,因为它现在是 public!