如何使用 Zoho CRM v2 添加 Zoho CRM 线索 API
How To Add Zoho CRM Leads with the Zoho CRM v2 API
如何使用简单的 curl 连接使用 Zoho CRM v2 API 添加 Zoho CRM 线索?文档不仅不清楚如何添加线索,甚至还不清楚如何获取正确的 oAuth 令牌来创建线索。
The docs对这个过程不是很清楚。所以,我会简化这个。最大的障碍是获取刷新令牌的步骤。一旦你有了它,你就可以生成无数的访问令牌,用于进行实际的 API 调用。
如何获取刷新令牌
- 使用 admin-level 帐户 登录您的 Zoho CRM 并在选项卡中打开它。然后,在另一个浏览器选项卡中,登录开发人员 API 控制台:https://api-console.zoho.com/
- 在开发者 API 控制台中,您需要创建一个 Server-Side 客户端。这些字段应该像这样填充:Client Name(您想要的任何逻辑名称),Homepage URL(域的主页在您要进行 API 调用的位置,或者只在进行重定向的位置使用相同的 URL), 授权重定向 URI(在您要进行 API 调用的域上放置一个网页,并使其仅发出 "zoho confirmed")。 ("zoho confirmed" 不是必需的,文档中也没有提及,但确实可以帮助您更好地理解该过程。)单击创建。
- 创建后,再次单击它,会出现一个名为 Client Secret 的选项卡。单击它并在记事本中记录您的 Client ID 和 Client Secret.
- 在线获取URL编码器脚本(或使用PHP或任何其他工具)并URL编码以下参数用于您需要编写的新URL并在下一步中加载浏览器:
scope: ZohoCRM.modules.ALL,ZohoCRM.settings.ALL,ZohoCRM.users.ALL,ZohoCRM.org.ALL,aaaserver.profile.ALL,ZohoCRM.settings.functions.all,ZohoCRM.notifications.all,ZohoCRM.coql.read,ZohoCRM.files.create,ZohoCRM.bulk.all
response_type: code
access_type: offline
client_id: {use the Client ID you recorded in step 3}
redirect_uri: {use the Authorized Redirect URI you generated in step 2}
- 使用那些 URL 编码的参数,将它们传递到浏览器中此 URL 的末尾:
https://accounts.zoho.com/oauth/v2/auth?
因此,您将得到类似于:
https://accounts.zoho.com/oauth/v2/auth?scope=ZohoCRM.modules.ALL%2CZohoCRM.settings.ALL%2CZohoCRM.users.ALL%2CZohoCRM.org.ALL%2Caaaserver.profile.ALL%2CZohoCRM.settings.functions.all%2CZohoCRM.notifications.all%2CZohoCRM.coql.read%2CZohoCRM.files.create%2CZohoCRM.bulk.all&client_id=1000.TTT0BSTTTC9TTTRILR3MGXBYAC82LH&response_type=code&access_type=offline&redirect_uri=https%3A%2F%2Fexample.com%3Azohoconfirm
请注意,如果您的重定向 URI(如上文 https://example.com/zohoconfirm)使用 301 或 302 重定向进行了另一个重定向,并且不转发这些查询参数,那么您完成后将丢失您需要查看的参数。
在浏览器中加载后,您将看到一个接受按钮。如果您不这样做,那么您可能错过了在第 1 步中您应该在一个选项卡中登录 CRM,然后打开一个新选项卡以执行其他任务。这使得 session 为您打开,并且在执行第 5 步时它知道您是谁。
单击接受按钮后,Zoho 的帐户系统会将您重定向到您指定的授权重定向 URI。因此,如果您完全按照这些步骤操作,您应该会看到类似 "zoho confirmed" 的输出。但不要关闭选项卡。查看选项卡的 URL 并将其 cut/paste 放入您的记事本中。在那里,获取 code 参数。
现在您有了代码参数,您需要创建一个特殊的 Curl POST 请求。您可以通过命令行或使用您喜欢的编程语言来执行此操作。在 Linux 上的命令行中,这将类似于以下内容:
curl "https://accounts.zoho.com/oauth/v2/token" \
-X POST \
-d "grant_type=authorization_code&code=1000.aaa1f9aa8582eaaaafeaddfaf0f3b6b.bf7fe646ba899783501c21a9a3240aaa&client_id=1000.AAAA0BSIC7C9AAAARILR3MGXBYAC8AAA&client_secret=aaa9aa9166055932ff8c0279c6253a65cb534daaaa&redirect_uri=https%3A%2F%2Fexample.com%2Fzohoconfirm"
您需要填写的URL-encoded个参数是:
grant_type: authorization_code
code: {the code you recorded from step 7}
client_id: {the Client ID you recorded in step 3}
client_secret: {the Client Secret you recorded in step 3}
redirect_uri: {the Authorized Redirect URI you recorded in step 2}
- 一旦您 运行 该 Curl 命令,它将 return 一些 JSON 类似于以下内容:
{"access_token":"1000.aaaa5579abeea73871b096c941ec1df8.7835dbb43bbf5122f2d5810f0b65aaa","refresh_token":"1000.aaaa2683a1723d1aeb7b58899849aaaa.aaaa4c22481da67e85e598f4b988aaa","api_domain":"https://www.zohoapis.com","token_type":"Bearer","expires_in":3600}
- 现在,在 JSON 输出中,您 可以 使用 access_token 来制作 API 调用生成潜在客户,但您最好只获取 refresh_token 并将其放入配置文件中以供以后在编程中使用。根据他们的文档,他们的 refresh_token 会永远存在。你应该把它放在一个非常安全的地方。
如何获取您的访问令牌
- 既然你得到了你的refresh_token,你每次都用它来生成一个新的access_token您需要拨打 API 电话。为此,使用类似于下面的 URL 制作另一个 Curl POST。在带有 Curl 的 Linux 命令行中,例如,它看起来像这样:
curl "https://accounts.zoho.com/oauth/v2/token" \
-X POST \
-d "grant_type=refresh_token&refresh_token=1000.aaaa2683a1723d1aeb7b58899849aaaa.aaaa4c22481da67e85e598f4b988aaa&client_id=1000.AAAA0BSIC7C9AAAARILR3MGXBYAC8AAA&client_secret=aaa9aa9166055932ff8c0279c6253a65cb534daaaa"
这里解释了如何使用 URL-encoded 参数:
grant_type: refresh_token
refresh_token: {use the refresh_token (the one I said that would last forever) from your stored config file from step 10 in the previous steps}
client_id: {use your client_id}
client_secret: {use your client_secret}
- 运行 上面的命令应该 return 给你一些 JSON 看起来类似于:
{"access_token":"1000.aaa1c95788b34226c2844a841bfd1d5.6aff70f4adbc3fee9e6b57579e481aaa","api_domain":"https://www.zohoapis.com","token_type":"Bearer","expires_in":3600}
- 在您最喜欢的编程语言中,您会将收到的 access_token 存储在一个临时变量中,以便您可以进行 API 调用执行诸如添加 Zoho CRM 主管之类的操作。该访问令牌将持续 3600 秒(1 小时),但实际上并不重要,因为您可以生成无限的访问令牌,因为您将 refresh_token 存储在配置文件中。
如何创建 Zoho CRM 潜在客户
- 在您最喜欢的编程语言中,您将使用该刷新令牌创建访问令牌,然后将其用于以下 header 以传递您的 API 调用:
Authorization: Zoho-oauthtoken XXXXXX
...其中 XXXXXX 是 access_token 您从上一组说明中收到的。
- 这是 PHP 中的示例 file_get_contents(尽管您可以使用PHP's Curl) 以请求添加 Zoho CRM 线索。您可以采用以下示例并用您最喜欢的编程语言重新编写代码。将 $sAccessToken 值更改为您生成的值。
请注意,在下面,我们还写入了一个名为 "Lead Source" 的字段,它的 API-accessible 名称是 "Lead_Source"。 (如果您最终更改了下面的代码以写入联系人或帐户,那么我敢肯定,您将需要创建一个自定义字段来指示联系人或帐户的来源。例如,如果您购物购物车,那么您可以指明记录来自完成该交易,而不是客户的来电。)
<?php
error_reporting(E_ALL);
ini_set('display_errors','On');
header('Content-Type: text/plain');
$sAccessToken = '1000.aaaa5579abeea73871b096c941ec1df8.7835daaa3bbf5122f2d5810f0b65aaaa'; // change me
$sJSON = json_encode(array(
'First_Name' => 'Mickey',
'Last_Name' => 'Mouse',
'Email' => 'mickey@example.com',
'Phone' => '444-444-4444',
'Lead_Source' => 'TEST1'
));
$sJSON = str_replace('{','[{',$sJSON);
$sJSON = str_replace('}','}]',$sJSON);
$sJSON = '{"data":' . $sJSON . '}';
echo "SENDING: $sJSON\n";
$sURL = 'https://www.zohoapis.com/crm/v2/Leads';
$sResponse = @ file_get_contents($sURL,false,stream_context_create(array('http'=>array(
'ignore_errors' => TRUE, // critical if you want to see errors in response instead of empty on error
'method' => 'POST',
'header' => array(
'Content-Type: application/json',
"Authorization: Zoho-oauthtoken $sAccessToken",
'cache-control: no-cache'
),
'content' => $sJSON
))));
echo "$sResponse\n";
如果成功,将生成类似于以下的响应:
{"data":[{"code":"SUCCESS","details":{"Modified_Time":"2020-05-21T20:45:24-04:00","Modified_By":{"name":"John Manager","id":"9999889000000279991"},"Created_Time":"2020-05-21T20:45:24-04:00","id":"9999889000000279991","Created_By":{"name":"John Manager","id":"9999889000000279991"}},"message":"record added","status":"success"}]}
...其中 John Manager 是您登录 CRM 所用的 admin-level 用户帐户的名称。
有关 Zoho CRM 插入记录 API 的更多信息可在此处找到:https://www.zoho.com/crm/developer/docs/api/insert-records.html
要了解在哪里可以找到 API-addressable 字段名称,请在您的 CRM 中转到:设置 > 开发人员 Space > APIs > API 名称 > 潜在客户.从 "Filter By" drop-down 中选择 "Fields"。
请注意,此 API 不会查找重复项。您可以调整以上内容以执行 "upsert" 而不是 "insert":https://www.zoho.com/crm/developer/docs/api/upsert-records.html
如果您将联系人和客户编辑为具有与潜在客户相同的自定义字段,那么您可以将 https://www.zohoapis.com/crm/v2/Leads
行更改为 https://www.zohoapis.com/crm/v2/Contacts
或 https://www.zohoapis.com/crm/v2/Accounts
并将条目写入其中嗯。
步骤:
1. 使用self client创建授权码。
2. 使用此授权码,您可以创建访问和刷新令牌。
3. 使用此刷新令牌,您可以创建新访问令牌
4. 将这个新创建的新访问令牌用于API。
在地图中为页眉和正文传递参数。
如果您知道 POSTMAN,那么有适用于 CRM 的 Postman Collection。
如何使用简单的 curl 连接使用 Zoho CRM v2 API 添加 Zoho CRM 线索?文档不仅不清楚如何添加线索,甚至还不清楚如何获取正确的 oAuth 令牌来创建线索。
The docs对这个过程不是很清楚。所以,我会简化这个。最大的障碍是获取刷新令牌的步骤。一旦你有了它,你就可以生成无数的访问令牌,用于进行实际的 API 调用。
如何获取刷新令牌
- 使用 admin-level 帐户 登录您的 Zoho CRM 并在选项卡中打开它。然后,在另一个浏览器选项卡中,登录开发人员 API 控制台:https://api-console.zoho.com/
- 在开发者 API 控制台中,您需要创建一个 Server-Side 客户端。这些字段应该像这样填充:Client Name(您想要的任何逻辑名称),Homepage URL(域的主页在您要进行 API 调用的位置,或者只在进行重定向的位置使用相同的 URL), 授权重定向 URI(在您要进行 API 调用的域上放置一个网页,并使其仅发出 "zoho confirmed")。 ("zoho confirmed" 不是必需的,文档中也没有提及,但确实可以帮助您更好地理解该过程。)单击创建。
- 创建后,再次单击它,会出现一个名为 Client Secret 的选项卡。单击它并在记事本中记录您的 Client ID 和 Client Secret.
- 在线获取URL编码器脚本(或使用PHP或任何其他工具)并URL编码以下参数用于您需要编写的新URL并在下一步中加载浏览器:
scope: ZohoCRM.modules.ALL,ZohoCRM.settings.ALL,ZohoCRM.users.ALL,ZohoCRM.org.ALL,aaaserver.profile.ALL,ZohoCRM.settings.functions.all,ZohoCRM.notifications.all,ZohoCRM.coql.read,ZohoCRM.files.create,ZohoCRM.bulk.all
response_type: code
access_type: offline
client_id: {use the Client ID you recorded in step 3}
redirect_uri: {use the Authorized Redirect URI you generated in step 2}
- 使用那些 URL 编码的参数,将它们传递到浏览器中此 URL 的末尾:
https://accounts.zoho.com/oauth/v2/auth?
因此,您将得到类似于:
https://accounts.zoho.com/oauth/v2/auth?scope=ZohoCRM.modules.ALL%2CZohoCRM.settings.ALL%2CZohoCRM.users.ALL%2CZohoCRM.org.ALL%2Caaaserver.profile.ALL%2CZohoCRM.settings.functions.all%2CZohoCRM.notifications.all%2CZohoCRM.coql.read%2CZohoCRM.files.create%2CZohoCRM.bulk.all&client_id=1000.TTT0BSTTTC9TTTRILR3MGXBYAC82LH&response_type=code&access_type=offline&redirect_uri=https%3A%2F%2Fexample.com%3Azohoconfirm
请注意,如果您的重定向 URI(如上文 https://example.com/zohoconfirm)使用 301 或 302 重定向进行了另一个重定向,并且不转发这些查询参数,那么您完成后将丢失您需要查看的参数。
在浏览器中加载后,您将看到一个接受按钮。如果您不这样做,那么您可能错过了在第 1 步中您应该在一个选项卡中登录 CRM,然后打开一个新选项卡以执行其他任务。这使得 session 为您打开,并且在执行第 5 步时它知道您是谁。
单击接受按钮后,Zoho 的帐户系统会将您重定向到您指定的授权重定向 URI。因此,如果您完全按照这些步骤操作,您应该会看到类似 "zoho confirmed" 的输出。但不要关闭选项卡。查看选项卡的 URL 并将其 cut/paste 放入您的记事本中。在那里,获取 code 参数。
现在您有了代码参数,您需要创建一个特殊的 Curl POST 请求。您可以通过命令行或使用您喜欢的编程语言来执行此操作。在 Linux 上的命令行中,这将类似于以下内容:
curl "https://accounts.zoho.com/oauth/v2/token" \
-X POST \
-d "grant_type=authorization_code&code=1000.aaa1f9aa8582eaaaafeaddfaf0f3b6b.bf7fe646ba899783501c21a9a3240aaa&client_id=1000.AAAA0BSIC7C9AAAARILR3MGXBYAC8AAA&client_secret=aaa9aa9166055932ff8c0279c6253a65cb534daaaa&redirect_uri=https%3A%2F%2Fexample.com%2Fzohoconfirm"
您需要填写的URL-encoded个参数是:
grant_type: authorization_code
code: {the code you recorded from step 7}
client_id: {the Client ID you recorded in step 3}
client_secret: {the Client Secret you recorded in step 3}
redirect_uri: {the Authorized Redirect URI you recorded in step 2}
- 一旦您 运行 该 Curl 命令,它将 return 一些 JSON 类似于以下内容:
{"access_token":"1000.aaaa5579abeea73871b096c941ec1df8.7835dbb43bbf5122f2d5810f0b65aaa","refresh_token":"1000.aaaa2683a1723d1aeb7b58899849aaaa.aaaa4c22481da67e85e598f4b988aaa","api_domain":"https://www.zohoapis.com","token_type":"Bearer","expires_in":3600}
- 现在,在 JSON 输出中,您 可以 使用 access_token 来制作 API 调用生成潜在客户,但您最好只获取 refresh_token 并将其放入配置文件中以供以后在编程中使用。根据他们的文档,他们的 refresh_token 会永远存在。你应该把它放在一个非常安全的地方。
如何获取您的访问令牌
- 既然你得到了你的refresh_token,你每次都用它来生成一个新的access_token您需要拨打 API 电话。为此,使用类似于下面的 URL 制作另一个 Curl POST。在带有 Curl 的 Linux 命令行中,例如,它看起来像这样:
curl "https://accounts.zoho.com/oauth/v2/token" \
-X POST \
-d "grant_type=refresh_token&refresh_token=1000.aaaa2683a1723d1aeb7b58899849aaaa.aaaa4c22481da67e85e598f4b988aaa&client_id=1000.AAAA0BSIC7C9AAAARILR3MGXBYAC8AAA&client_secret=aaa9aa9166055932ff8c0279c6253a65cb534daaaa"
这里解释了如何使用 URL-encoded 参数:
grant_type: refresh_token
refresh_token: {use the refresh_token (the one I said that would last forever) from your stored config file from step 10 in the previous steps}
client_id: {use your client_id}
client_secret: {use your client_secret}
- 运行 上面的命令应该 return 给你一些 JSON 看起来类似于:
{"access_token":"1000.aaa1c95788b34226c2844a841bfd1d5.6aff70f4adbc3fee9e6b57579e481aaa","api_domain":"https://www.zohoapis.com","token_type":"Bearer","expires_in":3600}
- 在您最喜欢的编程语言中,您会将收到的 access_token 存储在一个临时变量中,以便您可以进行 API 调用执行诸如添加 Zoho CRM 主管之类的操作。该访问令牌将持续 3600 秒(1 小时),但实际上并不重要,因为您可以生成无限的访问令牌,因为您将 refresh_token 存储在配置文件中。
如何创建 Zoho CRM 潜在客户
- 在您最喜欢的编程语言中,您将使用该刷新令牌创建访问令牌,然后将其用于以下 header 以传递您的 API 调用:
Authorization: Zoho-oauthtoken XXXXXX
...其中 XXXXXX 是 access_token 您从上一组说明中收到的。
- 这是 PHP 中的示例 file_get_contents(尽管您可以使用PHP's Curl) 以请求添加 Zoho CRM 线索。您可以采用以下示例并用您最喜欢的编程语言重新编写代码。将 $sAccessToken 值更改为您生成的值。
请注意,在下面,我们还写入了一个名为 "Lead Source" 的字段,它的 API-accessible 名称是 "Lead_Source"。 (如果您最终更改了下面的代码以写入联系人或帐户,那么我敢肯定,您将需要创建一个自定义字段来指示联系人或帐户的来源。例如,如果您购物购物车,那么您可以指明记录来自完成该交易,而不是客户的来电。)
<?php
error_reporting(E_ALL);
ini_set('display_errors','On');
header('Content-Type: text/plain');
$sAccessToken = '1000.aaaa5579abeea73871b096c941ec1df8.7835daaa3bbf5122f2d5810f0b65aaaa'; // change me
$sJSON = json_encode(array(
'First_Name' => 'Mickey',
'Last_Name' => 'Mouse',
'Email' => 'mickey@example.com',
'Phone' => '444-444-4444',
'Lead_Source' => 'TEST1'
));
$sJSON = str_replace('{','[{',$sJSON);
$sJSON = str_replace('}','}]',$sJSON);
$sJSON = '{"data":' . $sJSON . '}';
echo "SENDING: $sJSON\n";
$sURL = 'https://www.zohoapis.com/crm/v2/Leads';
$sResponse = @ file_get_contents($sURL,false,stream_context_create(array('http'=>array(
'ignore_errors' => TRUE, // critical if you want to see errors in response instead of empty on error
'method' => 'POST',
'header' => array(
'Content-Type: application/json',
"Authorization: Zoho-oauthtoken $sAccessToken",
'cache-control: no-cache'
),
'content' => $sJSON
))));
echo "$sResponse\n";
如果成功,将生成类似于以下的响应:
{"data":[{"code":"SUCCESS","details":{"Modified_Time":"2020-05-21T20:45:24-04:00","Modified_By":{"name":"John Manager","id":"9999889000000279991"},"Created_Time":"2020-05-21T20:45:24-04:00","id":"9999889000000279991","Created_By":{"name":"John Manager","id":"9999889000000279991"}},"message":"record added","status":"success"}]}
...其中 John Manager 是您登录 CRM 所用的 admin-level 用户帐户的名称。
有关 Zoho CRM 插入记录 API 的更多信息可在此处找到:https://www.zoho.com/crm/developer/docs/api/insert-records.html
要了解在哪里可以找到 API-addressable 字段名称,请在您的 CRM 中转到:设置 > 开发人员 Space > APIs > API 名称 > 潜在客户.从 "Filter By" drop-down 中选择 "Fields"。
请注意,此 API 不会查找重复项。您可以调整以上内容以执行 "upsert" 而不是 "insert":https://www.zoho.com/crm/developer/docs/api/upsert-records.html
如果您将联系人和客户编辑为具有与潜在客户相同的自定义字段,那么您可以将 https://www.zohoapis.com/crm/v2/Leads
行更改为 https://www.zohoapis.com/crm/v2/Contacts
或 https://www.zohoapis.com/crm/v2/Accounts
并将条目写入其中嗯。
步骤: 1. 使用self client创建授权码。 2. 使用此授权码,您可以创建访问和刷新令牌。 3. 使用此刷新令牌,您可以创建新访问令牌 4. 将这个新创建的新访问令牌用于API。
在地图中为页眉和正文传递参数。
如果您知道 POSTMAN,那么有适用于 CRM 的 Postman Collection。