我修改了文件
CreateMessageWithAttachment
上的Python代码
Users.messages: send
. 唯一的区别是我回来了
{'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密钥是正确的,并且允许调用gmailapi。
一个类似的问题是
How to access a gmail account I own using Gmail API?
,但作为一个本地的cronjob,我不知道如何像答案建议的那样“在Google注册我的应用程序”。