我以前在另一篇文章中问过这个问题,但是我没有收到回复。我正在尝试将ASP. Net MVC与少烦人的CRM API集成。目的是将表单提交存储到CRM中,以便将每个提交组织成类别或任务。LACRM api是为PHP设计的,开发人员提到他们缺乏在C#方面提供帮助的技能。这是我的代码(LACRM使用默认字段“FullName”和“Email”,然后它有一个参数“CustomFields”,以便可以创建自定义表单输入。我遇到的问题是只有FullName被注册,“电子邮件和”CustomFields显示在Api日志中,但没有在crm上的字段中注册):我的代码:
public async Task createContact(Booking booking) { //string APITOKEN = "some token"; //string UserCode = "98992"; //string Function = "CreateContact"; //string PipeLineId = "3687195324475747612076041165694"; //string url = "https://api.lessannoyingcrm.com?APIToken=" + APITOKEN + "&UserCode=" + UserCode + "&Function=" + Function + "&PipelineId=" + PipeLineId + ""; string url = "https://api.lessannoyingcrm.com?APIToken=sometoken&UserCode=A2575&Function=CreateContact&PipelineId=3727019319364096972431828675722"; var postData = new List> { }; postData.Add(new KeyValuePair ( "Email[1]", (new KeyValuePair("Text", booking.Email), new KeyValuePair("Type", "Work")).ToString() )); postData.Add(new KeyValuePair ( "Phone[1]", (new KeyValuePair("Text", booking.Phone), new KeyValuePair("Type", "Work")).ToString() )); postData.Add(new KeyValuePair ( "Website[0]", (new KeyValuePair("Text", "")).ToString() )); postData.Add(new KeyValuePair ( "Location", ( new KeyValuePair("", booking.PostCode) ).ToString() )); postData.Add(new KeyValuePair ( "CustomFields", ( new KeyValuePair("Conservatory", booking.Consevatory), new KeyValuePair("Size", booking.Size), new KeyValuePair("Type", booking.RoofType), new KeyValuePair("Source", booking.HearAboutUs), new KeyValuePair("Comment", booking.OtherInfo), new KeyValuePair("Conservatory", booking.SelectedProduct) ).ToString() )); using (var httpClient = new HttpClient()) { using (var content = new FormUrlEncodedContent(postData)) { content.Headers.Clear(); content.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); HttpResponseMessage response = await httpClient.PostAsync(url, content); var apiresponse = await response.Content.ReadAsAsync(); } } return true; }
这是LACRM PHP代码:
$_REQUEST['ContactName'], "Email"=>array( 0=>array( "Text"=>"$_REQUEST[Email]", "Type"=>"Work" ) ), "Phone"=>array( 0=>array( "Text"=>"$_REQUEST[Phone]", "Type"=>"Work" ) ), ); //...And then use the "CallAPI" function to send the information to LACRM $Result = CallAPI($UserCode, $APIToken, $Function, $Parameters); //That's it, the contact will now show up in the CRM! //Now let's enter the "Comment" field from the HTML form as a note on the contact's record //Get the new ContactId $ContactId = $Result['ContactId']; $Function = "CreateNote"; $Parameters = array( "ContactId"=>$ContactId, "Note"=>$_REQUEST['Comment'] ); //And pass that note to the API $Result = CallAPI($UserCode, $APIToken, $Function, $Parameters); /* There are all kinds of other things you might want to do here as well such as: -Set a task to follow up with the contact (https://www.lessannoyingcrm.com/help/topic/API_Example_Code_PHP/11/) -Add the contact as a lead (https://www.lessannoyingcrm.com/help/topic/API_Example_Code_PHP/87/) -Add the contact to a group (https://www.lessannoyingcrm.com/help/topic/API_Example_Code_PHP/13/) -Send an email to yourself letting you know a form was submitted (you can use the PHP "mail" function) */ //Now forward the visitor to an html page confirming that we got their contact info header('location:confirm.html'); /* This function takes all of the settings needed to call the API and puts them into one long URL, and then it makes an HTTP request to that URL. */ function CallAPI($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 "Success!"; } else{ echo "API call failed. Error:".@$APIResult['Error']; exit; } return $APIResult; }
如果能为customfield的工作提供帮助,我将不胜感激。非常感谢。
在C#中,关联数组是字典。您可以准备以下参数:
var parameters = new Dictionary<string, object> {
{ "FullName", booking.FullName },
{ "Email",
new object[] {
new Dictionary<string, string> {
{ "Text", booking.Email},
{ "Type", "Work"},
}
}
},
{ "Phone", new object[] {
new Dictionary<string, string> {
{ "Text", booking.Phone},
{ "Type", "Work"},
}
}
}
// Complete the other data
};
在PHP示例中,API调用使用HTTP方法GET,但您可以使用POST(我提倡这样做)。从LACRAM文档中:
您可以使用POST、GET或任何您想要的东西(对我们来说都一样)。
string url = "https://api.lessannoyingcrm.com?APIToken=sometoken&UserCode=A2575&Function=CreateContact&PipelineId=3727019319364096972431828675722";
var parametersAsJson = Newtonsoft.Json.JsonConvert.SerializeObject(parameters);
using (var httpClient = new HttpClient())
{
var response = await httpClient.PostAsync(url, new StringContent(parametersAsJson));
// Check the response status code to check if operation success
// Usualy 200 (Ok), maybe LACRAM return other success code, check the doc
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
var resultAsJson = await response.Content.ReadAsStringAsync();
var result = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(resultAsJson);
var contactId = result["ContactId"];
var companyId = result["CompanyId"];
}
else
{
throw new InvalidOperationException("Fail to create the contact");
}
}
您好,我有一个按钮,当我单击它时,此函数称为: 这里是CreateQrLink函数 这是我想通过点击下载QrCode按钮从这个视图下载图像的视图,我如何实现它?我不在数据库中保存QrLink我应该保存它还是其他什么?我想从src=Model获取照片。QrUrl
我在时区面临一个问题。现在我正在从客户端保存时区,并将所有日期时间存储在UTC中。它工作正常,但当我试图将UTC的日期时间转换为CST、EST、EDT等时区后,它会显示错误的数据。 问题-假设我在美国东部夏令时晚上10点做了任何任务,并且它将在凌晨2点(按照UTC)保存在DB中,但当我尝试获取一天的数据并通过当前UTC日期时。 我的问题是,如果我试图获取一天的数据,比如从美国东部时间午夜11点到当
问题内容: 我在Internet Explorer中的页面出现问题。我有一个Ajax调用,在其他浏览器中,当我单击该链接时,该调用会传递到控制器中并正确加载数据。但是在IE中,一次加载后,它消失了,而我却没有通过控制器就获得了相同的旧结果。 问题答案: 尝试: 放置在控制器类中的此属性禁用缓存。由于不需要在应用程序中缓存,因此将其放置在BaseController类中: 这是有关OutputCac
我是新点燃的。 步骤1:我在两个VM(ubuntu)中安装了Ignite 2.6.0,在一个VM中启动了节点。下面有COMAND。bin/ignite.sh examples/config/example-ignite.xml 步骤2:我的所有配置都在example-default.xml中 步骤3:在其他VM中执行包含datagrid逻辑的client.jar(该VM既是客户机也是节点)。 步骤
0.9.2 新版功能. 这些函数提高了初始化 Django 配置中环境变量的效率,运行后即可从 Django 项目或者 Django 本身中提取环境变量,而不需要每次使用 fabfile 时都亲自设置环境变量,或者使用 manage.py 插件。 目前,这些函数仅支持 Fabric 和 fabfile 以及它能引用到的 Django 库交互。听起来限制了你的使用,其实不然。在下面的例子中,你可以像
问题内容: 我对SQL(Server2008)的较低层次的了解是有限的,现在我们的DBA对此提出了挑战。让我解释一下这种情况:(我已经提到一些明显的陈述,希望我是对的,但是如果您发现有问题,请告诉我)。 我们有一张桌子,上面放着人们的“法院命令”。创建表(名称:CourtOrder)时,我的创建方式如下: 然后,我将非聚集索引应用于主键(以提高效率)。我的理由是,这是一个唯一字段(主键),应该像我
问题内容: 我正在尝试将Lucene与EclipseLink结合使用,并想知道那里是否有任何好的集成库?我已经看过太阳耀斑,看起来像石灰,它可以满足我的要求,但是它已经过时了(尽管我使用的是EclipseLink的较旧版本,但我使用的是Lucene 4.10)这可能有用,但是我找不到任何文档,有关如何使用它的示例或教程。 任何建议将不胜感激(我也不相信我们也可以切换到Hibernate) 提前致谢
我正在寻找一些关于使用webpack的帮助,用于一个大型AngularJS应用程序。我们使用基于特性的文件夹结构(每个特性/页面都有一个模块,它们有控制器、指令)。我已经成功地配置了webpack,使其能够与Grunt一起工作,生成一个包。我想创建块,因为它将是一个大的应用程序,我们想要加载模块(页面/特征)工件异步。 我将通过一些webpack示例使用语法使用。然而,我不能得到块懒惰加载。首先,