【发布时间】:2021-03-22 16:43:48
【问题描述】:
我之前在另一个帖子中问过这个问题,但是我没有收到回复。我正在尝试将 ASP.Net MVC 与 Less Annoying CRM API 集成。目的是将表单提交存储到 CRM 中,以便将每个提交组织到类别或任务中。 LACRM api 是为 PHP 设计的,开发人员提到他们缺乏在 C# 方面提供帮助的技能。 这是我的代码(LACRM 使用默认字段“FullName”和“Email”,然后它有一个参数“CustomFields”,以便可以创建自定义表单输入。我遇到的问题是只有 FullName 被注册并且“Email和“CustomFields 显示在 Api 日志中,但未在 crm 上的字段中注册): 我的代码:
public async Task createContact(Booking booking) { //string APITOKEN = "一些令牌"; //字符串用户代码 = "98992"; //字符串函数=“创建联系人”; //string PipeLineId = "3687195324475747612076041165694"; //string url = "https://api.lessannoyingcrm.com?APIToken=" + APITOKEN + "&UserCode=" + UserCode + "&Function=" + Function + "&PipelineId=" + PipeLineId + ""; 字符串 url = "https://api.lessannoyingcrm.com?APIToken=sometoken&UserCode=A2575&Function=CreateContact&PipelineId=3727019319364096972431828675722"; var postData = 新列表> { }; postData.Add(新键值对 ( "Email[1]", (new KeyValuePair("Text", booking.Email), 新的 KeyValuePair("Type", "Work")).ToString() )); postData.Add(新键值对 ( "Phone[1]", (new KeyValuePair("Text", booking.Phone), 新的 KeyValuePair("Type", "Work")).ToString() )); postData.Add(新键值对 ( "网站[0]", (new KeyValuePair("Text", "")).ToString() )); postData.Add(新键值对 ( “地点”, ( 新的 KeyValuePair("", booking.PostCode) ).ToString() )); postData.Add(新键值对 ( "自定义字段", ( new KeyValuePair("Conservatory", booking.Consevatory), 新的 KeyValuePair("尺寸", booking.Size), new KeyValuePair("类型", booking.RoofType), 新的 KeyValuePair(“来源”,booking.HearAboutUs), new KeyValuePair("评论", booking.OtherInfo), new KeyValuePair("Conservatory", booking.SelectedProduct) ).ToString() )); 使用 (var httpClient = new HttpClient()) { 使用 (var content = new FormUrlEncodedContent(postData)) { 内容.Headers.Clear(); content.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); HttpResponseMessage 响应 = 等待 httpClient.PostAsync(url, content); var apiresponse = 等待 response.Content.ReadAsAsync(); } } 返回真; }这是 LACRM PHP 代码:
$_REQUEST['ContactName'], “电子邮件”=>数组( 0=>数组( "文本"=>"$_REQUEST[电子邮件]", “类型”=>“工作” ) ), “电话”=>数组( 0=>数组( "文本"=>"$_REQUEST[电话]", “类型”=>“工作” ) ), ); //...然后使用“CallAPI”函数将信息发送到LACRM $Result = CallAPI($UserCode, $APIToken, $Function, $Parameters); //就是这样,联系人现在将显示在 CRM 中! //现在让我们从 HTML 表单中输入“评论”字段作为联系人记录上的注释 //获取新的ContactId $ContactId = $Result['ContactId']; $Function = "创建笔记"; $参数=数组( "ContactId"=>$ContactId, "注意"=>$_REQUEST['评论'] ); //然后将该注释传递给API $Result = CallAPI($UserCode, $APIToken, $Function, $Parameters); /* 您可能还想在这里做各种其他事情,例如: - 设置任务跟进联系人(https://www.lessannoyingcrm.com/help/topic/API_Example_Code_PHP/11/) - 将联系人添加为潜在客户 (https://www.lessannoyingcrm.com/help/topic/API_Example_Code_PHP/87/) - 将联系人添加到组(https://www.lessannoyingcrm.com/help/topic/API_Example_Code_PHP/13/) - 给自己发送一封电子邮件,让您知道表单已提交(您可以使用 PHP“邮件”功能) */ //现在将访问者转发到一个 html 页面,确认我们获得了他们的联系信息 标头('位置:confirm.html'); /* 此函数获取调用 API 所需的所有设置并将它们放入 一个长 URL,然后它向该 URL 发出 HTTP 请求。 */ 函数调用API($UserCode, $APIToken, $Function, $Parameters){ $APIResult = file_get_contents("https://api.lessannoyingcrm.com?UserCode=$UserCode&APIToken=$APIToken&". "Function=$Function&Parameters=".urlencode(json_encode($Parameters))); $APIResult = json_decode($APIResult, true); if(@$APIResult['Success'] === true){ //echo "成功!"; } 别的{ echo "API 调用失败。错误:".@$APIResult['Error']; 出口; } 返回 $APIResult; }非常感谢任何帮助使自定义字段正常工作。谢谢
【问题讨论】:
-
你能显示 LACRM 期望的 json 吗?
-
api日志为
Parameters: {"PipelineId":"3727019319364096972431828675722","FullName":"John Doe","Email":["([Text, example@example.com], [Type, Work])"],"Phone":["([Text, 5555555555], [Type, Work])"],"Website":["[Text, ]"],"Location":"[, john street]","CustomFields":"([Conservatory, Glass], [Size, 3.33 x 3.33 Metres], [Type, ], [Source, Newspaper], [Comment, testing api], [Conservatory, Lean-To])"} Response: {"ContactId":"3727243229049634192380189957314","Success":true} -
你能从php示例中显示
json_encode($Parameters)的值吗? -
这是 PHP 的结果:
Parameters: {"FullName":"John Doe","Email":[{"Text":"example@example.com","Type":"Personal"}],"Phone":[{"Text":"05555555555","Type":"Mobile"}],"CompanyName":"Example","CustomFields":{"Type":"Glass","Size":"3.33 x 3.33 Metres","Source":"Radio","Comment":"Example","Location":"London, UK"}} Response: {"ContactId":"3727368068151081214811269180358","CompanyId":"3727283960281429054350232441254","Success":true}
标签: c# php asp.net-mvc api