getMultipleLeads
与getLead
一样,getMultipleLeads
从Marketo中检索潜在客户记录。 此调用会返回与传递给leadSelector参数的条件匹配的一批潜在客户的数据,而不是单个潜在客户的数据。 标准可以是日期范围(如上次更新日期)、潜在客户键数组或静态列表。
注意:如果使用潜在客户键数组,则每批限制为100个;其他键将被忽略。
如果只需要潜在客户字段的子集,则应使用includeAttributes
参数指定所需字段。
每个getMultipleLeads
函数调用最多返回1000个潜在客户。 如果您必须检索1000个以上的潜在客户,结果将返回流位置,该位置可用于后续调用以检索下一批1000个潜在客户。 结果中的剩余计数可告知您剩余的确切潜在客户数量。 从静态列表获取时,终止条件为remainingCount == 0。
此端点的常见用例是查找在特定日期更新的潜在客户。 LastUpdateAtSelector
允许您执行此操作。
请求
字段名称
必需/可选
描述
商机选择器
必需
可以是以下3种类型之一:
LeadKeySelector
、StaticListSelector
、LastUpdateAtSelector
keyType
必需
您希望查询的ID类型。 值包括IDNUM、COOKIE、EMAIL、LEADOWNEREMAIL、SFDCACCOUNTID、SFDCCONTACTID、SFDCLEADUDID、SFDCLEADOWNERID、SFDCOPTYID。
keyValues->stringItem
必需
键值列表。 即,“lead@email.com”
LastUpdateAtSelector: leadSelector->oldestUpdatedAt
必需
用于指定“开始时间”标准的时间戳。 即,返回自指定时间以来更新的所有潜在客户。 (W3C WSDL日期时间格式)
LastUpdateAtSelector: leadSelector->latestUpdatedAt
可选
用于指定“直到”条件的时间戳。 即,返回所有更新到指定时间之前的潜在客户。 (W3C WSDL日期时间格式)
StaticListSelector: leadSelector->staticListName
leadSelector->staticListId
存在时可选静态列表的名称
StaticListSelector: leadSelector->staticListId
leadSelector->staticListName
存在时可选静态列表的滨顿
lastUpdatedAt
已弃用
请改用
LastUpdateAtSelector
includeAttributes
可选
您希望获取的属性的列表。 限制返回的潜在客户字段可以缩短API的响应时间。
batchSize
可选
要返回的最大记录数。 系统限制为100或
batchSize
,以较小者为准streamPosition
可选
用于在大量潜在客户响应中分页。
streamPosition
值由以前的调用响应字段newStreamPosition
返回请求齿惭尝
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.marketo.com/mktows/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header>
<ns1:AuthenticationHeader>
<mktowsUserId>demo17_1_809934544BFABAE58E5D27</mktowsUserId>
<requestSignature>146ec93f4f1e2a45f7a545f7e42e2d053c0457e7</requestSignature>
<requestTimestamp>2013-08-02T15:47:06-07:00</requestTimestamp>
</ns1:AuthenticationHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:paramsGetMultipleLeads>
<leadSelector xsi:type="ns1:LeadKeySelector">
<keyType>EMAIL</keyType>
<keyValues>
<stringItem>formtest1@marketo.com</stringItem>
<stringItem>joe@marketo.com</stringItem>
</keyValues>
</leadSelector>
<batchSize>100</batchSize>
</ns1:paramsGetMultipleLeads>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
响应齿惭尝
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://www.marketo.com/mktows/">
<SOAP-ENV:Body>
<ns1:successGetMultipleLeads>
<result>
<returnCount>2</returnCount>
<remainingCount>0</remainingCount>
<newStreamPosition />
<leadRecordList>
<leadRecord>
<Id>65835</Id>
<Email>formtest1@marketo.com</Email>
<ForeignSysPersonId xsi:nil="true" />
<ForeignSysType xsi:nil="true" />
<leadAttributeList>
<attribute>
<attrName>Company</attrName>
<attrType>string</attrType>
<attrValue>Marketo Test</attrValue>
</attribute>
<attribute>
<attrName>FirstName</attrName>
<attrType>string</attrType>
<attrValue>FnameForm1</attrValue>
</attribute>
<attribute>
<attrName>LastName</attrName>
<attrType>string</attrType>
<attrValue>LnameForm1</attrValue>
</attribute>
<attribute>
<attrName>LeadScore</attrName>
<attrType>integer</attrType>
<attrValue>16</attrValue>
</attribute>
<attribute>
<attrName>Website</attrName>
<attrType>url</attrType>
<attrValue>marketo.com</attrValue>
</attribute>
</leadAttributeList>
</leadRecord>
<leadRecord>
<Id>67508</Id>
<Email>joe@marketo.com</Email>
<ForeignSysPersonId xsi:nil="true" />
<ForeignSysType xsi:nil="true" />
<leadAttributeList>
<attribute>
<attrName>Company</attrName>
<attrType>string</attrType>
<attrValue>Marketo</attrValue>
</attribute>
<attribute>
<attrName>Date_of_purchase</attrName>
<attrType>date</attrType>
<attrValue>2012-04-04</attrValue>
</attribute>
<attribute>
<attrName>FirstName</attrName>
<attrType>string</attrType>
<attrValue>Joe</attrValue>
</attribute>
<attribute>
<attrName>LastName</attrName>
<attrType>string</attrType>
<attrValue>Orante</attrValue>
</attribute>
<attribute>
<attrName>LeadScore</attrName>
<attrType>integer</attrType>
<attrValue>11</attrValue>
</attribute>
</leadAttributeList>
</leadRecord>
</leadRecordList>
</result>
</ns1:successGetMultipleLeads>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
示例代码 — PHP
<?php
$debug = true;
$marketoSoapEndPoint = ""; // CHANGE ME
$marketoUserId = ""; // CHANGE ME
$marketoSecretKey = ""; // CHANGE ME
$marketoNameSpace = "http://www.marketo.com/mktows/";
// Create Signature
$dtzObj = new DateTimeZone("America/Los_Angeles");
$dtObj = new DateTime('now', $dtzObj);
$timeStamp = $dtObj->format(DATE_W3C);
$encryptString = $timeStamp . $marketoUserId;
$signature = hash_hmac('sha1', $encryptString, $marketoSecretKey);
// Create SOAP Header
$attrs = new stdClass();
$attrs->mktowsUserId = $marketoUserId;
$attrs->requestSignature = $signature;
$attrs->requestTimestamp = $timeStamp;
$authHdr = new SoapHeader($marketoNameSpace, 'AuthenticationHeader', $attrs);
$options = array("connection_timeout" => 15, "location" => $marketoSoapEndPoint);
if ($debug) {
$options["trace"] = 1;
}
// Create Request
/*
//Query by Email
$leadSel = new stdClass();
$leadSel->keyType = 'EMAIL';
$keyValues = array("formtest1@marketo.com", "joe@marketo.com");
$leadKeys = new stdClass();
$leadKeys->stringItem = $keyValues;
$leadSel->keyValues = $leadKeys;
$leadSelSoap = new stdClass();
$leadSelSoap = array("leadSelector" => $leadSel);
// $leadSelParams = array("leadSelector" => $leadSelSoap, "batchSize" => 10, "streamPosition" => $startPosition);
// $params = array("paramsGetMultipleLeads" => $leadSelParams);
$leadSelSoap = new SoapVar($leadSel, SOAP_ENC_OBJECT, "LeadKeySelector", "http://www.marketo.com/mktows/");
*/
/*
// Query by Update time
$leadSel = new stdClass();
$leadSel->latestUpdatedAt = "2013-08-06T15:45:00-07:00";
$leadSel->oldestUpdatedAt = "2013-08-06T12:00:00-07:00";
$leadSelSoap = new stdClass();
$leadSelSoap = array("leadSelector" => $leadSel);
$leadSelSoap = new SoapVar($leadSel, SOAP_ENC_OBJECT, "LastUpdateAtSelector", "http://www.marketo.com/mktows/");
*/
// Query from a Static List
$leadSel = new stdClass();
//ProgramName.ListName
$leadSel->staticListName = "SMSProgram.listForTesting";
$leadSelSoap = new stdClass();
$leadSelSoap = array("leadSelector" => $leadSel);
$leadSelSoap = new SoapVar($leadSel, SOAP_ENC_OBJECT, "StaticListSelector", "http://www.marketo.com/mktows/");
$params->leadSelector = $leadSelSoap;
$params->streamPosition = $startPosition;
$params->batchSize = 100;
$soapClient = new SoapClient($marketoSoapEndPoint ."?WSDL", $options);
try {
$leads = $soapClient->__soapCall('getMultipleLeads', array($params), $options, $authHdr);
}
catch(Exception $ex) {
var_dump($ex);
}
if ($debug) {
print "RAW request:\n" .$soapClient->__getLastRequest() ."\n";
print "RAW response:\n" .$soapClient->__getLastResponse() ."\n";
}
?>
示例代码 — Java
import com.marketo.mktows.*;
import java.net.URL;
import javax.xml.namespace.QName;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Hex;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.Marshaller;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
public class GetMultipleLeads {
public static void main(String[] args) {
System.out.println("Executing GetMultipleLeads");
try {
URL marketoSoapEndPoint = new URL("CHANGE ME" + "?WSDL");
String marketoUserId = "CHANGE ME";
String marketoSecretKey = "CHANGE ME";
QName serviceName = new QName("http://www.marketo.com/mktows/", "MktMktowsApiService");
MktMktowsApiService service = new MktMktowsApiService(marketoSoapEndPoint, serviceName);
MktowsPort port = service.getMktowsApiSoapPort();
// Create Signature
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
String text = df.format(new Date());
String requestTimestamp = text.substring(0, 22) + ":" + text.substring(22);
String encryptString = requestTimestamp + marketoUserId ;
SecretKeySpec secretKey = new SecretKeySpec(marketoSecretKey.getBytes(), "HmacSHA1");
Mac mac = Mac.getInstance("HmacSHA1");
mac.init(secretKey);
byte[] rawHmac = mac.doFinal(encryptString.getBytes());
char[] hexChars = Hex.encodeHex(rawHmac);
String signature = new String(hexChars);
// Set Authentication Header
AuthenticationHeader header = new AuthenticationHeader();
header.setMktowsUserId(marketoUserId);
header.setRequestTimestamp(requestTimestamp);
header.setRequestSignature(signature);
// Create Request
ParamsGetMultipleLeads request = new ParamsGetMultipleLeads();
// Request Using LeadKey Selector
////////////////////////////////////////////////////////
LeadKeySelector keySelector = new LeadKeySelector();
keySelector.setKeyType(LeadKeyRef.EMAIL);
ArrayOfString aos = new ArrayOfString();
aos.getStringItems().add("formtest1@marketo.com");
aos.getStringItems().add("joe@marketo.com");
keySelector.setKeyValues(aos);
request.setLeadSelector(keySelector);
/*
// Request Using LastUpdateAtSelector
////////////////////////////////////////////////////////
LastUpdateAtSelector leadSelector = new LastUpdateAtSelector();
GregorianCalendar gc = new GregorianCalendar();
gc.setTimeInMillis(new Date().getTime());
gc.add( GregorianCalendar.DAY_OF_YEAR, -2);
DatatypeFactory factory = DatatypeFactory.newInstance();
ObjectFactory objectFactory = new ObjectFactory();
JAXBElement<XMLGregorianCalendar> until =objectFactory.createLastUpdateAtSelectorLatestUpdatedAt(factory.newXMLGregorianCalendar(gc));
GregorianCalendar since = new GregorianCalendar();
since.setTimeInMillis(new Date().getTime());
since.add( GregorianCalendar.DAY_OF_YEAR, -5);
leadSelector.setOldestUpdatedAt(factory.newXMLGregorianCalendar(since));
leadSelector.setLatestUpdatedAt(until);
request.setLeadSelector(leadSelector);
*/
/*
// Request Using StaticList Selector
////////////////////////////////////////////////////////
StaticListSelector staticListSelector = new StaticListSelector();
//staticListSelector.setStaticListId(value)
ObjectFactory objectFactory = new ObjectFactory();
JAXBElement<String> listName = objectFactory.createStaticListSelectorStaticListName("SMSProgram.listForTesting");
staticListSelector.setStaticListName(listName);
// JAXBElement<Integer> listId = objectFactory.createStaticListSelectorStaticListId(6926);
// staticListSelector.setStaticListId(listId);
request.setLeadSelector(staticListSelector);
*/
ArrayOfString attributes = new ArrayOfString();
attributes.getStringItems().add("FirstName");
attributes.getStringItems().add("AnonymousIP");
attributes.getStringItems().add("Company");
request.setIncludeAttributes(attributes);
JAXBElement<Integer> batchSize = new ObjectFactory().createParamsGetMultipleLeadsBatchSize(10);
request.setBatchSize(batchSize);
SuccessGetMultipleLeads result = port.getMultipleLeads(request, header);
JAXBContext context = JAXBContext.newInstance(SuccessGetLead.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
m.marshal(result, System.out);
}
catch(Exception e) {
e.printStackTrace();
}
}
}
示例代码 — Ruby
require 'savon' # Use version 2.0 Savon gem
require 'date'
mktowsUserId = "" # CHANGE ME
marketoSecretKey = "" # CHANGE ME
marketoSoapEndPoint = "" # CHANGE ME
marketoNameSpace = "http://www.marketo.com/mktows/"
#Create Signature
Timestamp = DateTime.now
requestTimestamp = Timestamp.to_s
encryptString = requestTimestamp + mktowsUserId
digest = OpenSSL::Digest.new('sha1')
hashedsignature = OpenSSL::HMAC.hexdigest(digest, marketoSecretKey, encryptString)
requestSignature = hashedsignature.to_s
#Create SOAP Header
headers = {
'ns1:AuthenticationHeader' => { "mktowsUserId" => mktowsUserId, "requestSignature" => requestSignature,
"requestTimestamp" => requestTimestamp
}
}
client = Savon.client(wsdl: 'http://app.marketo.com/soap/mktows/2_3?WSDL', soap_header: headers, endpoint: marketoSoapEndPoint, open_timeout: 90, read_timeout: 90, namespace_identifier: :ns1, env_namespace: 'SOAP-ENV')
#Create Request
request = {
:lead_selector => {
:key_type => "EMAIL",
:key_values => {
:string_item => ["formtest1@marketo.com", "joe@marketo.com"]
}
},
:batch_size => "100"
}
response = client.call(:get_multiple_leads, message: request)
puts response
recommendation-more-help
bb269a6d-047a-4bf7-9acd-23ad9a63dc59