Gmail Api自动认证流程问题



是否有办法发送带有自动认证的Gmail Api的电子邮件?如果我们没有这个选项,那么我们必须手动选择身份验证帐户。实际上,这不是理想的情况。语句出现在Google选项卡上,在手动步骤完成后自动打开:

认证流程已经完成。您可以关闭此窗口。

在此消息和身份验证之后,代码将电子邮件发送到所需的帐户。

Example code:
from google.oauth2.credentials import Credentials
# Check if there is a valid token.pickle file
creds = None
if os.path.exists('token.pickle'):
with open('token.pickle', 'rb') as token:
creds = Credentials.from_authorized_user_file(token, SCOPES)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRET_FILE, SCOPES)
creds = flow.run_local_server(port=0)
# Save the credentials for the next run
with open('token.pickle', 'wb') as token:
pickle.dump(creds, token)

大概,您的代码是在云中运行的(云运行?云功能?所以它是在一些(最好是一些特定的,专用的,具有相关的最低IAM权限)服务帐户下执行的。

您可能希望将域范围的权限委托给该服务帐户。

详细信息如下:为服务帐户设置域范围委托,这里:用域范围委托控制API访问,这里:将域范围的权限委托给服务帐户

这是一个Stack Overflow的答案,描述了这种方法在python: Gmail API服务帐户unauthorized_client错误,即使与域范围的权限-如何获得访问Gmail帐户没有任何私钥从云功能内部。

祈祷答案中的代码片段仍然是正确的。

相关内容

  • 没有找到相关文章

最新更新