首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Zoho APIv1升级到APIV2 ->请求不会保存数据

从Zoho APIv1升级到APIV2 ->请求不会保存数据
EN

Stack Overflow用户
提问于 2019-06-25 10:22:58
回答 1查看 126关注 0票数 0

我正在将我的客户站点从Zoho的end of life v1应用程序接口升级到它的新的v2应用程序接口。

我已经遵循了指南,我不能要求在Zoho系统中创建一个新的'Lead‘保存。

我已经‘正确’安装了v2应用编程接口(没有错误,并且它正确地进行了身份验证),但还是要插入一个新的lead。

运行v1代码可以工作,所以我相信这个帐户还是可以的。它在测试域上,但我没有看到任何地方这可能会限制这一点。

v1接口代码:

代码语言:javascript
运行
复制
$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中工作,我对其进行了修改:**编辑**将其更改为与文档匹配。字段值已更改为API值。

代码语言:javascript
运行
复制
require_once('vendor/autoload.php');

ZCRMRestClient::initialize();

try {
    $moduleIns = ZCRMRestClient::getInstance()->getModuleInstance("Leads");

    $leads = array();

    $lead = ZCRMRecord::getInstance("Leads", null);
    $lead->setFieldValue("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);
    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");
}   

**编辑**

$responseIn返回:

代码语言:javascript
运行
复制
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代码会产生一个“已完成”的消息,所以没有直接的错误,但没有任何东西最终进入仪表板,更有趣的是,API useage reporter显示没有发送任何东西(但它确实显示了身份验证请求,所以我相信它是连接的)。

如何通过v2接口向Zoho发送leads?

**编辑**将字段名称更新为接口名称。

EN

回答 1

Stack Overflow用户

发布于 2019-07-27 21:47:21

在我看来,你的属性放错了。你应该用"Last_Name“代替"Last Name”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56746025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档