Curl 如何使用Zoho CRM v2 API添加Zoho CRM销售线索

Curl 如何使用Zoho CRM v2 API添加Zoho CRM销售线索,curl,oauth-2.0,crm,zoho,lead,Curl,Oauth 2.0,Crm,Zoho,Lead,如何使用简单的curl连接,通过Zoho CRM v2 API添加Zoho CRM Lead?文档不仅不清楚如何添加潜在客户,而且不清楚如何获得适当的oAuth令牌来创建潜在客户。对此过程不太清楚。所以,我将简化这个。最大的障碍是获取刷新令牌的步骤。一旦有了这些,您就可以生成无数用于进行实际API调用的访问令牌 如何获取刷新令牌 使用管理员级别的帐户登录Zoho CRM,并在选项卡中打开该帐户。然后,在另一个浏览器选项卡中,登录到Developer API控制台: 在开发人员API控制台中,您需

如何使用简单的curl连接,通过Zoho CRM v2 API添加Zoho CRM Lead?文档不仅不清楚如何添加潜在客户,而且不清楚如何获得适当的oAuth令牌来创建潜在客户。

对此过程不太清楚。所以,我将简化这个。最大的障碍是获取刷新令牌的步骤。一旦有了这些,您就可以生成无数用于进行实际API调用的访问令牌

如何获取刷新令牌
  • 使用管理员级别的帐户登录Zoho CRM,并在选项卡中打开该帐户。然后,在另一个浏览器选项卡中,登录到Developer API控制台:
  • 在开发人员API控制台中,您需要创建服务器端客户端。这些字段应按如下方式填充:客户端名称(您想要的任何逻辑名称),主页URL(您将要进行API调用的域的主页,或者只使用相同的URL进行重定向),授权重定向URI(在要进行API调用的域上放置一个网页,并使其仅发出“zoho confirmed”(zoho confirmed)(文档中没有提及也没有要求“zoho confirmed”,但它可以帮助您更好地理解流程。)单击“创建”
  • 创建完成后,再次单击它,会出现一个名为“客户端密码”的选项卡。单击它并在记事本中记录您的客户端ID客户端密码
  • 在线获取URL编码器脚本(或使用PHP或任何其他工具),并对下一步需要编写并加载到浏览器中的新URL的以下参数进行URL编码:
  • 使用这些URL编码的参数,将它们传递到浏览器中此URL的末尾:
    https://accounts.zoho.com/oauth/v2/auth?
    因此,您将拥有类似于:
  • 请注意,如果您的重定向URI(如上所述)使用301或302重定向进行了另一次重定向,并且没有转发这些查询参数,那么您将丢失完成后需要查看的参数

  • 在浏览器中加载后,您将看到一个“接受”按钮。如果没有,则您可能错过了在步骤1中,您应该在一个选项卡中登录CRM,然后打开一个新选项卡以执行其他任务。这会为您打开一个会话,并且在执行步骤5时,它会知道您是谁

  • 单击“接受”按钮后,Zoho的帐户系统会将您重定向到您指定的授权重定向URI。因此,如果您严格遵循这些步骤,您应该会看到一些输出,如“Zoho确认”。但不要关闭选项卡。查看选项卡的URL并将其剪切/粘贴到记事本中。在那里,抓取代码参数

  • 现在您已经有了该代码参数,您需要创建一个特殊的Curl POST请求。您可以通过命令行或使用您最喜欢的编程语言来执行此操作。在Linux上的命令行中,这将如下所示:

  • 需要填写的URL编码参数包括:

    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命令后,它将返回一些类似于以下内容的JSON:
  • 现在,在JSON输出中,您可以使用该access\u token进行API调用以生成lead,但您最好将该refresh\u token放在配置文件中,以备以后在编程中使用。根据他们的文档,他们的refresh\u token将永远持续。您应该在一个非常安全的地方
  • 如何获取您的访问令牌
  • 现在,您已经获得了刷新\u令牌,每次需要进行API调用时,您都可以使用它生成一个新的访问\u令牌。要做到这一点,请使用类似于下面的URL创建另一个Curl帖子。在使用Curl的Linux命令行中,作为示例,下面是它的样子:
  • 下面是如何执行URL编码参数的说明:

    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} 
    
  • 运行上述命令应返回一些类似于以下内容的JSON:
  • 在您最喜欢的编程语言中,您将在临时变量中存储收到的access_token,以便您可以进行API调用以执行添加Zoho CRM Lead之类的操作。该访问token将持续3600秒(1小时),但实际上并不重要,因为您可以生成无限访问令牌,因为您将该刷新令牌存储在配置文件中
  • 如何创建Zoho CRM销售线索
  • 在您最喜欢的编程语言中,您将使用该刷新令牌创建访问令牌,然后将其用于以下标头以传入API调用:
  • …其中XXXXXX是您从上一组指令中收到的访问令牌

  • 下面是PHP中的一个示例,其中包含文件\u get\u内容(尽管您可以对PHP的Curl执行相同的操作),以请求添加Zoho CRM Lead。您可以使用以下示例,并使用您最喜欢的编程语言对其重新编码。将$sAccessToken值更改为您生成的值
  • 请注意,下面我们还将写入一个名为“Lead Source”的字段,它的API可访问名称是“Lead_Source”。(如果您最终更改了下面的代码以写入联系人或帐户,那么我相信您需要创建一个自定义字段来指示联系人或帐户的来源。例如,如果您有一个购物车,那么您可以指示记录来自完成该交易,而不是客户来电。)

    …其中John Manager是您登录CRM时使用的管理员级别用户帐户的名称

    有关Zoho CRM插入记录API的更多信息,请访问:

    要了解在哪里可以找到API可寻址字段名,请在CRM中转到:设置>开发人员空间>API>API名称>线索。从“筛选依据”下拉列表中选择“字段”

    请注意,此API不查找du
    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"
    
    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}
    
    {"access_token":"1000.aaaa5579abeea73871b096c941ec1df8.7835dbb43bbf5122f2d5810f0b65aaa","refresh_token":"1000.aaaa2683a1723d1aeb7b58899849aaaa.aaaa4c22481da67e85e598f4b988aaa","api_domain":"https://www.zohoapis.com","token_type":"Bearer","expires_in":3600}
    
    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"
    
    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} 
    
    {"access_token":"1000.aaa1c95788b34226c2844a841bfd1d5.6aff70f4adbc3fee9e6b57579e481aaa","api_domain":"https://www.zohoapis.com","token_type":"Bearer","expires_in":3600}
    
    Authorization: Zoho-oauthtoken XXXXXX
    
    <?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"}]}