使用属性值检索ExactTarget订户

时间:2015-01-30 03:13:46

标签: php api soap exacttarget

我正在使用ExactTarget的SOAP API。我可以通过电子邮件检索订阅者,但我有自己想要的自定义属性,例如年龄或性别。我尝试过复合滤波器,但没有运气。

这是我想要的,但在PHP中: http://help.exacttarget.com/en/technical_library/web_service_guide/technical_articles/creating_a_filterdefinition_object/

1 个答案:

答案 0 :(得分:0)

FilterDefinitions用于在SFMC应用程序中定义可刷新的段。您当然可以创建它们并使用SOAP API执行它们,但它通常不是通过API返回一组订阅者的首选方法。为此,您只需使用复杂的过滤器在Subscriber object上进行检索即可。

这是一个示例SOAP信封:

<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
   <s:Header>
      <a:Action s:mustUnderstand="1">Retrieve</a:Action>
      <a:MessageID>urn:uuid:db7625ad-b909-48f7-a9e6-9819f5bd3ddb</a:MessageID>
      <a:ReplyTo>
         <a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address>
      </a:ReplyTo>
      <a:To s:mustUnderstand="1">https://webservice.exacttarget.com/Service.asmx</a:To>
      <o:Security xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" s:mustUnderstand="1">
         <u:Timestamp u:Id="_0">
            <u:Created>2015-01-30T15:33:23.689Z</u:Created>
            <u:Expires>2015-01-30T15:38:23.689Z</u:Expires>
         </u:Timestamp>
         <o:UsernameToken u:Id="uuid-85bdf3e7-075c-46a6-bbb1-37e7e48ad3d6-5">
            <o:Username><!-- Removed--></o:Username>
            <o:Password><!-- Removed--></o:Password>
         </o:UsernameToken>
      </o:Security>
   </s:Header>
   <s:Body xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <RetrieveRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
         <RetrieveRequest>
            <ClientIDs>
               <ClientID>12345678</ClientID>
            </ClientIDs>
            <ObjectType>Subscriber</ObjectType>
            <Properties>Client.ID</Properties>
            <Properties>Client.PartnerClientKey</Properties>
            <Properties>CreatedDate</Properties>
            <Properties>EmailAddress</Properties>
            <Properties>EmailTypePreference</Properties>
            <Properties>ID</Properties>
            <Properties>PartnerKey</Properties>
            <Properties>Status</Properties>
            <Properties>SubscriberKey</Properties>
            <Properties>UnsubscribedDate</Properties>
            <Filter xsi:type="ComplexFilterPart">
               <LeftOperand xsi:type="SimpleFilterPart">
                  <Property>EmailAddress</Property>
                  <SimpleOperator>equals</SimpleOperator>
                  <Value>aspriggs@degdigital.com</Value>
               </LeftOperand>
               <LogicalOperator>AND</LogicalOperator>
               <RightOperand xsi:type="SimpleFilterPart">
                  <Property>Client.ID</Property>
                  <SimpleOperator>equals</SimpleOperator>
                  <Value>12345678</Value>
               </RightOperand>
               <AdditionalOperands />
            </Filter>
            <QueryAllAccounts>true</QueryAllAccounts>
            <Retrieves />
            <Options>
               <SaveOptions />
               <IncludeObjects>true</IncludeObjects>
            </Options>
         </RetrieveRequest>
      </RetrieveRequestMsg>
   </s:Body>
</s:Envelope>

我还建议在salesforce.stackexchange.com发布SFMC问题。这就是大部分SFMC问题得到解答的地方。