我认为在最新版本中,标签只是字符串。至少,这是我使用的。
client.lists.members.create('1111111', {
'email_address' : 'frogger116@gmail.com',
'status' : 'subscribed',
'tags': ['frogger','invaders']
})
另外,为了确定,请确保系统中存在标签。特别是如果进行更新而不是插入。它在处理未知标签方面并不是超级一致。
当然,还要确保“1111111”受众 ID 存在。
补充代码
当然,我找到了一种更好的方法来确保您想要的是使用其他方法添加到标签而不是插入。您可能需要调整以下函数,因为它们是类的一部分,但它们应该为您提供有关如何添加和删除用户标签的其他想法
def bulkUpdateTagNamesForEmails(self, emailsToUpdate, tagNames, remove=False):
audienceId = self.audienceId
if remove:
data = {'members_to_remove':emailsToUpdate}
else:
data = {'members_to_add':emailsToUpdate}
segments = None
for tagName in tagNames:
segId,segments = self.getSegmentIdFromTagName(tagName,segments)
if segId:
self.brResponse = self.mcClient.lists.segments.update_members(list_id=audienceId, segment_id=segId, data=data)
def createTagNameIfNeeded(self, tagName):
audienceId = self.audienceId
# Check for tag name
found = False
segments = self.mcClient.lists.segments.all(list_id=audienceId, get_all=False)
for segment in segments['segments']:
if segment['name'] == tagName:
found = True
print("Found tag")
# If not found, create it
if not found:
print(f"Creating new tag {tagName}")
data = {'name': tagName,'static_segment': []}
self.mcClient.lists.segments.create(list_id=audienceId, data=data)
def getSegmentIdFromTagName(self,reqTagName,segments=None):
audienceId = self.audienceId
reqId = None
if not segments:
segments = self.mcClient.lists.segments.all(list_id=audienceId, get_all=True)
for segment in segments['segments']:
segName = segment['name']
segId = segment['id']
if segName == reqTagName:
reqId = segId
break
return reqId,segments