从zoho apiv1到apiv2->请求不保存数据

问题描述 投票:0回答:0
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">'.'[email protected]'.'</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中工作的哪个: ** 编辑 ** 更改了以匹配文档。字段值更改为API值。

require_once('vendor/autoload.php'); ZCRMRestClient::initialize(); try { $moduleIns = ZCRMRestClient::getInstance()->getModuleInstance("Leads"); $leads = array(); $lead = ZCRMRecord::getInstance("Leads", null); $lead->setFieldValue("Owner", "[email protected]"); $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); array_push($leads, $lead); $responseIn = $moduleIns->createRecords($records); foreach($responseIn->getEntityResponses() as $responseIns){ echo "HTTP Status Code:".$responseIn->getHttpStatusCode(); echo "Status:".$responseIns->getStatus(); echo "Message:".$responseIns->getMessage(); echo "Code:".$responseIns->getCode(); echo "Details:".json_encode($responseIns->getDetails()); } echo "<pre>"; var_dump($responseIn); echo "</pre>"; die("Should be fine"); } catch (ZCRMException $e) { echo $e->getCode(); echo $e->getMessage(); echo $e->getExceptionCode(); die("ZCRM Exception Dead"); } catch (Exception $e) { echo "<pre>"; echo $e->getMessage(); echo "</pre>"; die("Exception Dead"); }

**编辑**

$ wendespin返回:

object(BulkAPIResponse)#1161 (12) {
  ["bulkData":"BulkAPIResponse":private]=>
  array(0) {
  }
  ["status":"BulkAPIResponse":private]=>
  NULL
  ["info":"BulkAPIResponse":private]=>
  NULL
  ["bulkEntitiesResponse":"BulkAPIResponse":private]=>
  NULL
  ["httpStatusCode":"CommonAPIResponse":private]=>
  int(0)
  ["responseJSON":"CommonAPIResponse":private]=>
  NULL
  ["responseHeaders":"CommonAPIResponse":private]=>
  array(0) {
  }
  ["code":"CommonAPIResponse":private]=>
  NULL
  ["message":"CommonAPIResponse":private]=>
  NULL
  ["details":"CommonAPIResponse":private]=>
  NULL
  ["response":"CommonAPIResponse":private]=>
  bool(false)
  ["apiName":"CommonAPIResponse":private]=>
  NULL
}

运行V2代码会产生一个“已完成的” Messge,因此没有直接错误,但仪表板中没有任何错误,更有趣的是,API USEAGE REPORTER显示什么都没有发送(但是它确实显示了身份验证请求,所以我相信它是连接)

我如何通过V2 API将“ Leads”发送到Zoho?
**编辑**
将字段名称更新为API名称。
    

在我看来,您的属性被错误地放置。您应该将“ last_name”放置为“姓氏”。

php zoho
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.