Я пересмотрел продемонстрированные CreateMessageWithAttachment
коды Python на Users.messages: отправить .Единственное отличие состоит в том, что я возвращаю {'raw': base64.urlsafe_b64encode(message.as_bytes()).decode("UTF-8")}
вместо {'raw': base64.urlsafe_b64encode(message.as_string())}
, поскольку последний действительно вызывает ошибки.
После этого я попытался отправить себе электронное письмо с вложением:
userID = my_email_address
API_KEY = my_api_key
# my_api_key was generated under my_email_address on GCP
email_content = CreateMessageWithAttachment(userID, userID, "Test API", "This is a test.", file_dir, filename)
r = requests.post(
url="https://www.googleapis.com/gmail/v1/users/{}/messages/send?key={}".format(userID, API_KEY),
data=json.dumps(email_content)
)
if r.status_code == 200:
print("Succeed!")
else:
print(r.status_code)
Сейчас я получаю код состояния 401, что похоже на проблему с авторизацией.Однако я понятия не имею, с чего начать решать эту проблему.Я уверен, что ключ API правильный, и ему разрешено вызывать Gmail API.
Один из подобных вопросов по SO - Как получить доступ к учетной записи Gmail, которой я владею, с помощью Gmail API? , но какместный cronjob, я не знаю, как «Зарегистрировать мое приложение в Google», как предложенный ответ.