我实现了一个解析器来将我的标签名称更改为 ID
def ModifyMessage(service, user_id, msg_id, msg_labels):
"""Modify the Labels on the given Message.
Args:
service: Authorized Gmail API service instance.
user_id: User's email address. The special value "me"
can be used to indicate the authenticated user.
msg_id: The id of the message required.
msg_labels: The change in labels.
Returns:
Modified message, containing updated labelIds, id and threadId.
"""
try:
message = service.users().messages().modify(userId=user_id, id=msg_id,
body=msg_labels).execute()
label_ids = message['labelIds']
print('Message ID: %s - With Label IDs %s' % (msg_id, label_ids))
return message
except errors.HttpError, error:
print( 'An error occurred(modify): %s' % error)
def GetLabelIds(service, labels_in):
result = []
results = service.users().labels().list(userId='me').execute()
labels = results.get('labels', [])
for label_in in labels_in:
for label in labels:
if label['name'] == label_in:
result.append(label['id'])
break
return result
现在我这样称呼标签 Creator:
def CreateMsgLabels(service):
"""Create object to update labels.
Returns:
A label update object.
"""
removeLabels = GetLabelIds(service, ['OLDLABEL'])
addLabels = GetLabelIds(service, ['NEWLABEL'])
return {'removeLabelIds': removeLabels, 'addLabelIds': addLabels}
我在主代码中的调用如下所示
ModifyMessage(service, 'me', id, CreateMsgLabels(service))