Обновление с Zoho APIv1 до APIV2 -> запросы не сохраняют данные - PullRequest
0 голосов
/ 25 июня 2019

Я нахожусь в процессе обновления сайта моего клиента с API Zoho в конце жизненного цикла v1 до его нового API v2.

Я следовал этому руководству и не могу получить запросы на создание нового 'Лид 'сохранить в системе Zoho.

У меня API-интерфейс v2 установлен "правильно" (ошибок нет, и он правильно аутентифицируется), но я иду, чтобы вставить новый лид.

Запуск кода v1 работаетпоэтому я считаю, что с учетной записью все в порядке.Он находится в тестовом домене, но я нигде не видел, чтобы это могло ограничить это.

Код API v1:

$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:

<code>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 "
"; die ();}

Выполнение кода v2 приводит к« завершенному »сообщению, поэтому не было ошибок непосредственно, но ничто не заканчивается в инструментальной панели и, что более интересно, репортер использования APIпоказывает, что ничего не отправлено (но он показывает запросы на аутентификацию, поэтому я считаю, что он подключен).

Как я могу отправить «ведет» в Zoho через v2 API?

...