Я пытался использовать этот реферальный код SOAP, но не повезло, может ли кто-нибудь помочь мне в этом.

     <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:5dfca442-f1a0-4f7c-9419-8ace5658d2a3</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.s6.exacttarget.com/Service.asmx</a:To>
         <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
            <o:UsernameToken u:Id="uuid-88b91f91-bac2-489b-90fb-37e7b256e20c-1">
               <o:Username>ABCD</o:Username>
               <o:Password>ABCD</o:Password>
            </o:UsernameToken>
         </o:Security>
       </s:Header>
       <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <RetrieveRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
         <RetrieveRequest>
            <ObjectType>AccountUser</ObjectType>
            <QueryAllAccounts>true</QueryAllAccounts>
            <Properties>email</Properties>
            <Properties>ActiveFlag</Properties>
            <Properties>CreatedDate</Properties>
            <Properties>isAPIUser</Properties>
            <Properties>UserID</Properties>
            <Properties>LastSuccessfulLogin</Properties>
         </RetrieveRequest>
         </RetrieveRequestMsg>
       </s:Body>
        </s:Envelope> 
0
Gortonington 15 Фев 2020 в 22:18
Пожалуйста, поделитесь ответом, который вы видите при отправке этого запроса.
 – 
Mac
19 Фев 2020 в 16:36

1 ответ

Вы можете сделать это через SOAP, WSProxy и недокументированную конечную точку REST. И SOAP, и WSproxy вернут некоторую роль и разрешение, тогда как вызов REST API вернет только: id, memberId, userName, name, email, canImpersonate.

Ниже приведен конверт SOAP, который я использую (только для тела) при получении этой информации:

      <RetrieveRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
      <RetrieveRequest>
        <ObjectType>AccountUser</ObjectType>
        <Properties>AccountUserID</Properties>
        <Properties>ActiveFlag</Properties>
        <Properties>CustomerKey</Properties>
        <Properties>Email</Properties>
        <Properties>ID</Properties>
        <Properties>LastSuccessfulLogin</Properties>
        <Properties>ModifiedDate</Properties>
        <Properties>Name</Properties>
        <Properties>Roles</Properties>
        <Properties>UserID</Properties>
        <Properties>UserPermissions</Properties>
      </RetrieveRequest>
    </RetrieveRequestMsg>

Ниже приведен вызов WSProxy, который я использую:

 var prox = new Script.Util.WSProxy();
  if(mid) {
    // Set ClientID 
    prox.setClientId({ "ID": mid });
  }

  var cols = ["AccountUserID","ActiveFlag","CustomerKey","Email","ID","LastSuccessfulLogin","ModifiedDate","Name","Roles","UserID","UserPermissions"];

  var res = prox.retrieve("AccountUser", cols);

И, наконец, ниже приведена конечная точка REST:

GET /platform/v1/accounts/{{MID}}/users
Host: https://{{subdomain}}.rest.marketingcloudapis.com/
Authorization: Bearer {{authToken}}
Content-Type: application/json
2
Gortonington 15 Фев 2020 в 22:29
Запрос мыла возвращает мне только результаты бизнес-подразделения верхнего уровня. Есть ли способ (с мыльным вызовом) получить результаты для всех бизнес-единиц (или для бизнес-единицы не верхнего уровня)?
 – 
Gail Parsloe
9 Апр 2021 в 17:25
Привет, Гейл. Вы можете добавить параметр для запроса всех учетных записей с помощью: var QueryAllAccounts = true; Затем отредактируйте запрос следующим образом: var res = prox.retrieve("AccountUser", cols, null, QueryAllAccounts);
 – 
Matt Goldstein
26 Апр 2021 в 20:55