/
update_marketo_program_tokens.py
49 lines (36 loc) · 1.85 KB
/
update_marketo_program_tokens.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#input variables to Zapier Step 11: Update Marketo Program Tokens
input={
'program_id': 'Pid' #from Step 9: Get Latest Marketo Program ID
'token': 'Token' #from Step 3: Get Marketo Access Token
'link': 'File URL' #from Step 4: Upload File to Marketo
'utm': 'Querystring' #from Step 10: Get UTM Parameters from Google Sheet
'type': 'Content Type' #from Step 1: Get Submission from Google Form
}
import re
import urllib.parse
authorization = "Bearer " + input['token']
https://developers.marketo.com/rest-api/assets/tokens/#create_and_update
url = "https://###-xxx-###.mktorest.com/rest/asset/v1/folder/" + input['program_id'] + "/tokens.json"
token_type = 'text'
folder_type= 'Program'
token_names= ['utm', 'content link', 'email_utm', 'lead_source','lead_source_detail', 'source','medium','campaign']
content_link = urllib.parse.quote(input['link'])
email_utm = urllib.parse.quote('?utm_source=mkto&utm_medium=email&utm_campaign=content_delivery')
lead_source = 'Content'
lead_source_detail = input['type']
utm = input['utm'].replace("?",'')
source = re.search('utm_source=(.*)&utm_medium',utm).group(1)
medium = re.search('utm_medium=(.*)&utm_campaign',utm).group(1)
campaign = re.search('utm_campaign=(.*)',utm).group(1)
utm = urllib.parse.quote(utm)
token_values = [utm, content_link, email_utm, lead_source,lead_source_detail, source,medium,campaign]
headers = {
'Content-Type': "application/x-www-form-urlencoded",
'cache-control': "no-cache",
'Authorization': authorization
}
response = ''
for i in range(0, len(token_names)):
payload = 'name=' + token_names[i] + '&value=' + token_values[i] + '&type=' + token_type + '&folderType=' + folder_type
response = response + requests.request("POST", url, data=payload, headers=headers).text
return {'response': response}