requestCampaign
Deze functie voert een bestaande Marketo lead uit in een Marketo Smart Campaign. De slimme Campagne moet een "Campagne wordt gevraagd"trekker met de bron van de Dienst API van het Web hebben (zie hieronder).
Er zijn twee parametersets die kunnen worden gebruikt. Het eerste geval gebruikt campaignName + programName + programTokenList . In dit geval kan programTokenList leeg zijn. Het tweede geval gebruikt campaignId alleen. Elke andere combinatie genereert een ongeldige parameteruitzondering.
Nota: Grens van 100 leadKey waarden per vraag. Extra toetsen worden genegeerd.
Veldnaam
Vereist/optioneel
Beschrijving
leadList->leadKey->keyType
Vereist
In
keyType kunt u het veld opgeven waarop u een query wilt uitvoeren. Mogelijke waarden zijn: IDNUM, EMAIL, SFDCLEADID, LEADOWNEREMAIL, SFDCACCOUNTID, SFDCCONTACTID, SFDCLEADID, SFDCLEADOWNERID, SFDCOPPTYIDleadList->leadKey->keyValue
Vereist
keyValue is de waarde waardoor u de lead wilt opvragen.bron
Vereist
De campagnebron. Mogelijke waarden:
MKTOWS of SALES . Opsomming wordt gedefinieerd in WSDL.campagneId
Optioneel wanneer
campaignName , programName en programTokenList zich op een parametersite bevinden; anders is campaignId vereistDe id van de campagne. OPMERKING: er treedt een ongeldige parameterfout op als
campaignID en campaignName beide worden doorgegeven.campagneName
Optioneel wanneer campagne-id aanwezig is; anders vereist in een set als
campaignName , programName en programTokenListDe naam van de campagne
programName
Optioneel wanneer campagne-id aanwezig is; anders vereist in een set als
campaignName , programName en programTokenListDe naam van het programma
programTokenList
Optioneel wanneer campagneId aanwezig is; anders vereist in een set als
campaignName , programName en programTokenListArray met tokens die in de campagne moeten worden gebruikt. Bij het opgeven van tokens zijn programName en
campaignName vereist.programTokenList->attrib->name
Optioneel
De naam van het programmatietoken waarvan u de waarde wilt doorgeven. Voorbeeld:{{my.message}}
programTokenList->attrib->value
Optioneel
De waarde voor de opgegeven tokennaam.
XML aanvragen
<?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/">
<SOAP-ENV:Header>
<ns1:AuthenticationHeader>
<mktowsUserId>demo17_1_809939944BFABAE58E5D27</mktowsUserId>
<requestSignature>48397ad47b71a1439f13a51eea3137df46441979</requestSignature>
<requestTimestamp>2013-08-01T12:31:14-07:00</requestTimestamp>
</ns1:AuthenticationHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:paramsRequestCampaign>
<source>MKTOWS</source>
<campaignId>4496</campaignId>
<leadList>
<leadKey>
<keyType>EMAIL</keyType>
<keyValue>lead@company.com</keyValue>
</leadKey>
<leadKey>
<keyType>EMAIL</keyType>
<keyValue>anotherlead@company.com</keyValue>
</leadKey>
</leadList>
</ns1:paramsRequestCampaign>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XML van antwoord
<?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/">
<SOAP-ENV:Body>
<ns1:successRequestCampaign>
<result>
<success>true</success>
</result>
</ns1:successRequestCampaign>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Voorbeeldcode - 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" => 20, "location" => $marketoSoapEndPoint);
if ($debug) {
$options["trace"] = true;
}
// Create Request
$leadKey = array("keyType" => "EMAIL", "keyValue" => "lead@company.com");
$leadKey2 = array("keyType" => "EMAIL&qquot;, "keyValue" => "anotherlead@company.com");
$leadList = new stdClass();
$leadList->leadKey = array($leadKey, $leadKey2);
$source = "MKTOWS";
$campaignId = "4496";
$paramsRequestCampaign = new stdClass();
$paramsRequestCampaign->campaignId = $campaignId;
$paramsRequestCampaign->source = $source;
$paramsRequestCampaign->leadList = $leadList;
$params = array("paramsRequestCampaign" => $paramsRequestCampaign);
$soapClient = new SoapClient($marketoSoapEndPoint ."?WSDL", $options);
try {
$response = $soapClient->__soapCall('requestCampaign', $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";
}
print_r($response);
?>
Voorbeeldcode - 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 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;
public class RequestCampaign {
public static void main(String[] args) {
System.out.println("Executing Request Campaign");
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
ParamsRequestCampaign request = new ParamsRequestCampaign();
request.setSource(ReqCampSourceType.MKTOWS);
ObjectFactory objectFactory = new ObjectFactory();
JAXBElement<Integer> campaignId = objectFactory.createParamsRequestCampaignCampaignId(4496);
request.setCampaignId(campaignId);
ArrayOfLeadKey leadKeyList = new ArrayOfLeadKey();
LeadKey key = new LeadKey();
key.setKeyType(LeadKeyRef.EMAIL);
key.setKeyValue("lead@company.com");
LeadKey key2 = new LeadKey();
key2.setKeyType(LeadKeyRef.EMAIL);
key2.setKeyValue("anotherlead@company.com");
leadKeyList.getLeadKeies().add(key);
leadKeyList.getLeadKeies().add(key2);
JAXBElement<ArrayOfLeadKey> arrayOfLeadKey = objectFactory.createParamsRequestCampaignLeadList(leadKeyList);
request.setLeadList(arrayOfLeadKey);
SuccessRequestCampaign result = port.requestCampaign(request, header);
JAXBContext context = JAXBContext.newInstance(SuccessRequestCampaign.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
m.marshal(result, System.out);
}
catch(Exception e) {
e.printStackTrace();
}
}
}
Voorbeeldcode - 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 = {
:source => "MKTOWS",
:campaign_id => "4496",
:lead_list => {
:lead_key => {
:key_type => "EMAIL",
:key_value => "lead@company.com" },
:lead_key! => {
:key_type => "EMAIL",
:key_value => "anotherlead@company.com" }
}
}
response = client.call(:request_campaign, message: request)
puts response
recommendation-more-help
bb269a6d-047a-4bf7-9acd-23ad9a63dc59