requestCampaign
Last update: Mon Jul 22 2024 00:00:00 GMT+0000 (Coordinated Universal Time)
- Argomenti:
- SAPONE
Creato per:
- Amministratore
Questa funzione esegue un lead Marketo esistente in una campagna Marketo Smart. La campagna avanzata deve avere un trigger "Campaign is Requested" (Richiesta campagna) con origine API del servizio web (vedi di seguito).
È possibile utilizzare due set di parametri. Il primo caso utilizza campaignName
+ programName
+ programTokenList
. In questo caso programTokenList
può essere vuoto. Il secondo caso utilizza campaignId
da solo. Qualsiasi altra combinazione genera un'eccezione di parametro non valida.
Nota: limite di 100 valori leadKey per chiamata. Le chiavi aggiuntive vengono ignorate.
Nome campo
Obbligatorio/facoltativo
Descrizione
leadList->leadKey->keyType
Obbligatorio
keyType
consente di specificare il campo in base al quale si desidera eseguire la query del lead. I valori possibili includono: IDNUM
, EMAIL
, SFDCLEADID
, LEADOWNEREMAIL
, SFDCACCOUNTID
, SFDCCONTACTID
, SFDCLEADID
, SFDCLEADOWNERID
, SFDCOPPTYID
leadList->leadKey->keyValue
Obbligatorio
keyValue
è il valore in base al quale si desidera eseguire la query del lead.sorgente
Obbligatorio
Origine della campagna. Valori possibili:
MKTOWS
o SALES
. Enumerazione definita in WSDL.campaignId
Facoltativo quando
campaignName
, programName
e programTokenList
sono insieme in un sito di parametri; altrimenti campaignId
è obbligatorioID della campagna. NOTA: se
campaignID
e campaignName
sono entrambi passati, si verifica un errore di parametro non valido.campaignName
Facoltativo se campaignId è presente; altrimenti obbligatorio in un set come
campaignName
, programName e programTokenListNome della campagna
programName
Facoltativo se campaignId è presente; altrimenti obbligatorio in un set come
campaignName
, programName e programTokenListNome del programma
programTokenList
Facoltativo se campaignId è presente; altrimenti obbligatorio in un set come
campaignName
, programName
e programTokenList
Array di token da utilizzare nella campagna. Quando si specificano i token, programName e
campaignName
sono obbligatori.programTokenList->attrib->name
Facoltativo
Nome del token del programma di cui si desidera trasmettere il valore. Es:{{my.message}}
programTokenList->attrib->value
Facoltativo
Valore per il nome del token specificato.
Richiedi XML
<?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 risposta
<?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>
Codice di esempio - 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);
?>
Codice di esempio - 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();
}
}
}
Codice di esempio - Rubino
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