如何从 PHP 页面使用 Zoho CRM API V2?
How to use Zoho CRM API V2 from PHP page?
我试图在 Zoho CRM 上存储和检索一些值,但最终使用了 API 的 V1。
我当前的密码是:
<html>
<head>
<meta content="width=320px, initial-scale=1, user-scalable=yes" name="viewport" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<div id="logform">
<form method="POST" onClick="exec()">
<b>Login To Continue:</b><br/><br/>
<b>Name:</b><input type="text" id="name" name='name' value=""><br/>
<b>Email:</b><input type="email" id="email" name='email' value="" ><br/>
<input type="submit" name="submit"value="Submit" id="submit" >Submit</button>
<!--<font color="white"><input type="button" ></a>-->
</form></div>
<script type="text/javascript">
<script type="text/javascript">
function exec() {
var mail=document.getElementById("email").innerHTML;
var namen=document.getElementById("name");
document.cookie = "name="+namen;
var phpadd= <?php echo sendData();?> ;
}
</script>
<script type="text/javascript">document.getElementById("submit").addEventListener("click", var hide = document.getElementById("logform").style.display="none";);
</script>
</script>
<?php
function sendData()
{
$email=$_POST["email"];
$name=$_POST["name"];
$cookie_name = "Event";
$cookie_value = "Login";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
$fname="Usr";
$lname="1";
$auth="#AuthKey";
$xml =
'<?xml version="1.0" encoding="UTF-8"?>
<Contacts>
<row no="1">
<FL val="First Name">'.$name.'</FL>
<FL val="Last Name">'.$name.'</FL>
<FL val="Email">'.$email.'</FL>
<FL val="Department">Medical</FL>
<FL val="Phone">0000000000</FL>
<FL val="Fax">0000</FL>
<FL val="Mobile">0000000000</FL>
<FL val="Assistant">none</FL>
</row>
</Contacts>';
$url ="https://crm.zoho.com/crm/private/xml/Contacts/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
$response = curl_exec($ch);
curl_close($ch);
echo $response;
}
?>
</body>
</html>
现在我知道 API v1 即将被弃用。我需要将这段代码迁移到 CRM API V2。我还需要读取这些上传到 CRM 的数据。有人请帮助我!在线文档非常混乱。
你说得对,V1 30 天后就会贬值。
最简单的切换方法可能是使用 Zoho PHP SDK。它可能作为 composer 包安装。
SDK 相当复杂,大部分文档不完整 API,但是,按照 documentation 中的示例,您应该能够弄清楚如何使用它。
您很可能想使用 "Records API"。
如果您从未使用过 oAuth2,那么此身份验证系统的基本思想是您与服务提供商 (Zoho) 交换令牌,而不是使用 "secret key"(本质上是密码)之类的东西。
令牌就像很快过期的密码,但您可以随时更新它们。
通常,您会希望完全自动化并抽象出所有代币管理,因此,它会 运行 与您的代码所做的主要业务分开。
幸运的是,Zoho PHP SDK 已经为您完成并自动管理令牌。
我试图在 Zoho CRM 上存储和检索一些值,但最终使用了 API 的 V1。
我当前的密码是:
<html>
<head>
<meta content="width=320px, initial-scale=1, user-scalable=yes" name="viewport" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<div id="logform">
<form method="POST" onClick="exec()">
<b>Login To Continue:</b><br/><br/>
<b>Name:</b><input type="text" id="name" name='name' value=""><br/>
<b>Email:</b><input type="email" id="email" name='email' value="" ><br/>
<input type="submit" name="submit"value="Submit" id="submit" >Submit</button>
<!--<font color="white"><input type="button" ></a>-->
</form></div>
<script type="text/javascript">
<script type="text/javascript">
function exec() {
var mail=document.getElementById("email").innerHTML;
var namen=document.getElementById("name");
document.cookie = "name="+namen;
var phpadd= <?php echo sendData();?> ;
}
</script>
<script type="text/javascript">document.getElementById("submit").addEventListener("click", var hide = document.getElementById("logform").style.display="none";);
</script>
</script>
<?php
function sendData()
{
$email=$_POST["email"];
$name=$_POST["name"];
$cookie_name = "Event";
$cookie_value = "Login";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
$fname="Usr";
$lname="1";
$auth="#AuthKey";
$xml =
'<?xml version="1.0" encoding="UTF-8"?>
<Contacts>
<row no="1">
<FL val="First Name">'.$name.'</FL>
<FL val="Last Name">'.$name.'</FL>
<FL val="Email">'.$email.'</FL>
<FL val="Department">Medical</FL>
<FL val="Phone">0000000000</FL>
<FL val="Fax">0000</FL>
<FL val="Mobile">0000000000</FL>
<FL val="Assistant">none</FL>
</row>
</Contacts>';
$url ="https://crm.zoho.com/crm/private/xml/Contacts/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
$response = curl_exec($ch);
curl_close($ch);
echo $response;
}
?>
</body>
</html>
现在我知道 API v1 即将被弃用。我需要将这段代码迁移到 CRM API V2。我还需要读取这些上传到 CRM 的数据。有人请帮助我!在线文档非常混乱。
你说得对,V1 30 天后就会贬值。
最简单的切换方法可能是使用 Zoho PHP SDK。它可能作为 composer 包安装。
SDK 相当复杂,大部分文档不完整 API,但是,按照 documentation 中的示例,您应该能够弄清楚如何使用它。
您很可能想使用 "Records API"。
如果您从未使用过 oAuth2,那么此身份验证系统的基本思想是您与服务提供商 (Zoho) 交换令牌,而不是使用 "secret key"(本质上是密码)之类的东西。
令牌就像很快过期的密码,但您可以随时更新它们。
通常,您会希望完全自动化并抽象出所有代币管理,因此,它会 运行 与您的代码所做的主要业务分开。
幸运的是,Zoho PHP SDK 已经为您完成并自动管理令牌。