python - 使用带有 API 密钥的 Gmail API 从我的地址发送带有附件的电子邮件
问题描述
我在Users.messages: send上修改了演示的CreateMessageWithAttachment
Python 代码。唯一的区别是我返回而不是因为后者实际上导致了错误。{'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 API 访问我拥有的 gmail 帐户?,但是作为本地 cronjob,我不知道如何像建议的答案那样“在 Google 注册我的应用程序”。
解决方案
推荐阅读
- python - ValueError:logits 和标签必须具有相同的形状 ((None, 10, 82) vs (None, 1))
- spring-boot - Saml2 spring-security 单点注销
- python - 在 discord.py 中,on_message 不会为一个公会触发
- java - 无法通过 mixin 反序列化
- reactjs - 如何将页面标题传递给菜单(如面包屑)
- rabbitmq - 使用 Azure ADB2C 令牌向 RabbitMq 进行身份验证
- sql - 如何使用 SQL Oracle Live 将查询结果保存到新列中并保存在表中?
- ios - 使用 alamofire 和后端服务器的 ios 聊天应用程序的可能性
- asp.net - 如何在Angular中返回布尔值
- pycharm - pycharm 不显示代码建议或颜色 python 代码