Gmail API (Python) - невозможно добавить ответ в ветку - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь собрать это воедино с помощью загадочных и устаревших документов Google и случайных вопросов по SO. Я хочу добавить ответ в ветку gmail через API.

Google говорит :

просто добавьте ключ threadId в паре с идентификатором потока к метаданным сообщения, объекту сообщения.

А вот что я пытаюсь:

def create_message(sender, to, cc, bcc, subject, message_text, file=None, thread=None):
    message = MIMEMultipart()
    print(thread)
    message['to'] = to
    if cc:
        message['cc'] = cc
    if bcc:
        message['bcc'] = bcc
    if thread:
        message['threadId'] = thread
    message['from'] = sender
    message['subject'] = subject
    msg = MIMEText(message_text, 'html')
    message.attach(msg)
    if file:
        message = attach_file(message, file)
    return {'raw': base64.urlsafe_b64encode(message.as_string().encode()).decode()}

Но это не работает. Я не уверен, что делать.

1 Ответ

0 голосов
/ 09 ноября 2018

Мне наконец удалось заставить это работать. Я нашел однострочную ссылку на это в инструкциях очень вводящей в заблуждение. В других местах в документах «метаданные» относятся к набору информации, содержащей тему, адреса электронной почты и т. Д., Но в этом случае кажется, что они хотят, чтобы вы добавили идентификатор потока вместе с все эти вещи.

Надеюсь, это прояснит это для кого-то еще:

def create_message(sender, to, cc, bcc, subject, message_text, file=None, thread=None):
    message = MIMEMultipart()
    message['to'] = to
    if cc:
        message['cc'] = cc
    if bcc:
        message['bcc'] = bcc
    message['from'] = sender
    message['subject'] = subject
    msg = MIMEText(message_text, 'html')
    message.attach(msg)
    if file:
        message = attach_file(message, file)
    output =  {'raw': base64.urlsafe_b64encode(message.as_string().encode()).decode()}
    if thread:
        output['threadId'] = thread
    return output
...