def run(self): ''' Main execution code ''' output = [] output_title = [] params = self.cfg_params # noqac # Get proper list of tables client_id = params.get(CLIENT_ID) client_secret = params.get(CLIENT_SECRET) subdomain = params.get(SUBDOMAIN) sub_id = params.get(MID) scope = params.get(SCOPE) stubObj = ET_Client.ET_Client( False, False, { 'clientid': client_id, 'clientsecret': client_secret, 'wsdl_file_local_loc': DEFAULT_FILE_INPUT + '/ExactTargetWSDL.xml', 'authenticationurl': 'https://' + subdomain + '.auth.marketingcloudapis.com/', 'useOAuth2Authentication': 'True', 'accountId': sub_id }) if scope == ('Subscribers').lower(): getSub = ET_Client.ET_Subscriber() getSub.props = ["SubscriberKey", "EmailAddress", "Status"] getSub.auth_stub = stubObj getResponse = getSub.get() result = getResponse.results output = [(x['EmailAddress'], x['SubscriberKey'], x['Status']) for x in result] output_title = ['email', 'subscriber_key', 'status'] elif scope == ('DataExtensions').lower(): de = ET_Client.ET_DataExtension() de.auth_stub = stubObj de.props = ["CustomerKey", "Name", "Description"] getResponse = de.get() result = getResponse.results output = [(x['CustomerKey'], x['Name'], x['Description']) for x in result] output_title = ['customerkey', 'name', 'description'] elif scope == ('Folders').lower(): getFolder = ET_Client.ET_Folder() getFolder.auth_stub = stubObj getFolder.props = [ "ID", "Client.ID", "ParentFolder.ID", "ParentFolder.CustomerKey", "ParentFolder.ObjectID", "ParentFolder.Name", "ParentFolder.Description", "ParentFolder.ContentType", "ParentFolder.IsActive", "ParentFolder.IsEditable", "ParentFolder.AllowChildren", "Name", "Description", "ContentType", "IsActive", "IsEditable", "AllowChildren", "CreatedDate", "ModifiedDate", "Client.ModifiedBy", "ObjectID", "CustomerKey", "Client.EnterpriseID", "Client.CreatedBy" ] getResponse = getFolder.get() result = getResponse.results output = [(x['Name'], x['ID'], x['CustomerKey'], x['ObjectID']) for x in result] output_title = ['name', 'id', 'customerkey', 'objectid'] output_file = DEFAULT_TABLE_DESTINATION + scope + '.csv' logging.info(output_file) with open(output_file, 'w') as out: csv_out = csv.writer(out) csv_out.writerow(output_title) for row in output: csv_out.writerow(row)
def get_subscribers(self): subscribers = ET_Client.ET_Subscriber() subscribers.auth_stub = self.auth_stub subscribers.props = ["ID", "EmailAddress", "Status"] return subscribers.get()
import ET_Client try: debug = False stubObj = ET_Client.ET_Client(False, debug) # NOTE: These examples only work in accounts where the SubscriberKey functionality is not enabled # SubscriberKey will need to be included in the props if that feature is enabled SubscriberTestEmail = "*****@*****.**" # Create Subscriber print '>>> Create Subscriber' postSub = ET_Client.ET_Subscriber() postSub.auth_stub = stubObj postSub.props = {"EmailAddress": SubscriberTestEmail} postResponse = postSub.post() print 'Post Status: ' + str(postResponse.status) print 'Code: ' + str(postResponse.code) print 'Message: ' + str(postResponse.message) print 'Result Count: ' + str(len(postResponse.results)) print 'Results: ' + str(postResponse.results) # Retrieve newly created Subscriber print '>>> Retrieve newly created Subscriber' getSub = ET_Client.ET_Subscriber() getSub.auth_stub = stubObj getSub.props = ["SubscriberKey", "EmailAddress", "Status"] getSub.search_filter = { 'Property': 'SubscriberKey', 'SimpleOperator': 'equals',
} postResponse = postList.post() print('Post Status: ' + str(postResponse.status)) print('Code: ' + str(postResponse.code)) print('Message: ' + str(postResponse.message)) print('Result Count: ' + str(len(postResponse.results))) print('Results: ' + str(postResponse.results)) # Make sure the list created correctly before if postResponse.status: newListID = postResponse.results[0]['NewID'] # Create Subscriber On List print('>>> Create Subscriber On List') postSub = ET_Client.ET_Subscriber() postSub.auth_stub = stubObj postSub.props = { "EmailAddress": SubscriberTestEmail, "Lists": [{ "ID": newListID }] } postResponse = postSub.post() print('Post Status: ' + str(postResponse.status)) print('Code: ' + str(postResponse.code)) print('Message: ' + str(postResponse.message)) print('Result Count: ' + str(len(postResponse.results))) print('Results: ' + str(postResponse.results)) if postResponse.status is False: