在向 Marketo 提交数据之前使用我自己的表格

Use my own form before submitting data to Marketo

我正在使用 ASP.NET 并想使用我自己的表单,但仍将数据发送到 Marketo 表单以创建新的潜在客户。我已经获得了我想要提交的字段名称和值,格式为 JSON,如 create/update 的 Marketo 文档中所示 - http://developers.marketo.com/documentation/rest/createupdate-leads/

{  
   "action":"createOnly",
   "input":[  
      {  
         "email":"kjashaedd-1@klooblept.com",
         "firstName":"Kataldar-1",
         "postalCode":"04828"
      }
   ]
}

该表格只会为每个表格创建一个潜在客户,我已经在 Marketo 中创建了表格并拥有表格 ID 和我认为我需要的一切,我只是不知道我需要做什么才能将值提交到 Marketo 表单中。

理想情况下,我想使用 SOAP 或 REST api 从服务器端实现我的目标,而不是使用 javascript。

我不反对服务器端形式 post 方法,如果有人可以帮助提供与此相关的服务器端代码,我们也将不胜感激

在 Marketo 开发团队的 Kenny Elkington 的帮助下,我解决了这个问题!

我发现的第一件事是,要使用 REST 方法,我首先需要按照此处的说明进行操作 -

http://developers.marketo.com/blog/quick-start-guide-for-marketo-rest-api/

为了能够生成身份验证令牌。

然后我可以使用 -

private String getToken()
{
    String url = host + "/identity/oauth/token?grant_type=client_credentials&client_id=" + clientId + "&client_secret=" + clientSecret;
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.ContentType = "application/json";
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    Stream resStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(resStream);
    String json = reader.ReadToEnd();
    Dictionary<String, String> dict = JsonConvert.DeserializeObject<Dictionary<String, String>>(json);
    return dict["access_token"];
}

然后,一旦我获得了访问令牌,我就能够对自己进行身份验证,这让我可以创建一个潜在客户,如下所示 -

private String host = "" //host of your marketo instance, https://AAA-BBB-CCC.mktorest.com
String url = host + "/rest/v1/leads.json?access_token=" + getToken();

String requestBody = "----JSON INPUT----";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json";
request.Accept = "application/json";
StreamWriter wr = new StreamWriter(request.GetRequestStream());
wr.Write(requestBody);
wr.Flush();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream resStream = response.GetResponseStream();
StreamReader reader = new StreamReader(resStream);
String responseString = reader.ReadToEnd();

然后我可以使用响应字符串来确定销售线索是否已成功创建,或者我可以向用户输出错误消息。