从Zoho APIv1升级到APIV2->请求未保存数据

时间:2019-06-25 02:22:57

标签: zoho

我正在将客户的网站从Zoho生命周期终止的v1 API升级到新的v2 API。

我已按照指南进行操作,但无法在Zoho系统中创建新的“ Lead”保存请求。

我已经“正确”安装了v2 API(没有错误,并且可以正确验证),但是要插入新的销售线索。

运行v1代码可以正常工作,因此我认为该帐户还可以。它在测试域中,但是我没有看到任何可能会限制它的地方。

v1 API代码:

$xml  = '<?xml version="1.0" encoding="UTF-8"?>'; // same error with or without this line
$xml .= '<Leads>';
$xml .= '<row no="1">';
$xml .= '<FL val="Lead Owner">'.'luke@example.com'.'</FL>';
$xml .= '<FL val="First Name">'.$_POST['enquiry-firstname'].'</FL>';
$xml .= '<FL val="Last Name">'.$_POST['enquiry-lastname'].'</FL>';
$xml .= '<FL val="Email">'.$_POST['enquiry-email'] .'</FL>';
$xml .= '<FL val="Company">'.$_POST['enquiry-company'].'</FL>';
$xml .= '<FL val="Lead Source">Web Site</FL>';
$xml .= '<FL val="Phone">'.$_POST['enquiry-phone'].'</FL>';
$xml .= '<FL val="Description">
            Enquiry Type: ' . htmlentities($_POST['enquiry-enquiry'], ENT_QUOTES | ENT_IGNORE, "UTF-8") . '
            Message: '.htmlentities($_POST['enquiry-message'], ENT_QUOTES | ENT_IGNORE, "UTF-8") . '
            Board: ' . $zoho_descr;
$xml .= '</FL>';
$xml .= '</row>';
$xml .= '</Leads>';

$url ="https://crm.zoho.com/crm/private/xml/Leads/insertRecords";
$query="authtoken=<secret>&scope=crmapi&newFormat=1&xmlData=".$xml;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);// Set the request as a POST FIELD for curl.

$response = curl_exec($ch);
curl_close($ch);

我已修改为在v2中工作:

require_once('vendor/autoload.php');

ZCRMRestClient::initialize();

try {
    $lead = ZCRMRecord::getInstance("Leads", null);
    $lead->setFieldValue("Lead Owner", "luke@example.com");
    $lead->setFieldValue("First Name", $_POST['enquiry-firstname']);
    $lead->setFieldValue("Last Name", $_POST['enquiry-lastname']);
    $lead->setFieldValue("Email", $_POST['enquiry-email']);
    $lead->setFieldValue("Company", $_POST['enquiry-company']);
    $lead->setFieldValue("Lead Source", "Web Site");
    $lead->setFieldValue("Phone", $_POST['enquiry-phone']);
    $lead->setFieldValue("Description",  "Enquiry Type: " . htmlentities($_POST['enquiry-enquiry'], ENT_QUOTES | ENT_IGNORE, "UTF-8") . ' Message: '.htmlentities($_POST['enquiry-message'], ENT_QUOTES | ENT_IGNORE, 'UTF-8') . '  Board: ' . $zoho_descr);
    $response = $lead->create();
    die("Completed");
} catch (ZCRMException $e) {
    echo $e->getCode();
    echo $e->getMessage();
    echo $e->getExceptionCode();
    die();
} catch (Exception $e) {
    echo "<pre>";
    echo $e->getMessage();
    echo "</pre>";
    die();
}

运行v2代码会产生一个“完成的”消息,因此直接没有错误,但仪表盘中没有任何错误,更有趣的是,API使用率报告程序显示未发送任何消息(但它确实显示了身份验证请求,因此我相信它已连接)。

如何通过v2 API将“线索”发送给Zoho?

1 个答案:

答案 0 :(得分:0)

我认为您的属性放置不正确。代替“姓氏”,您应该输入“ Last_Name”。