我使用
defineSecret
而不是 functions.config()
来获取环境变量,并使用 OAuth2
身份验证而不是让我的 Gmail 设置来授权“不太安全的应用程序”,将已有 4 年历史的云功能从第 1 代升级到第 2 代。
该函数部署成功,但当我运行它时,出现“用户或密码无效”错误。该功能很简单,它从联系表单中获取数据并将其通过电子邮件发送给我,使用我的 gmail 作为发件人。 我在测试模式下有 OAuth 同意屏幕,我的电子邮件作为测试用户。 我使用此 API 通过 OAuth 2.0 Playground 生成了刷新令牌:https://www.googleapis.com/auth/gmail.send
这是确切的日志:
Access Token obtained successfully
Error creating transport: Error: Invalid login: 535-5.7.8 Username and Password not accepted.
这是函数:
const createTransport = async () => {
try {
const oauth2Client = new google.auth.OAuth2(
await clientId.value(),
await clientSecret.value(),
"https://developers.google.com/oauthplayground"
);
oauth2Client.setCredentials({
refresh_token: await refreshToken.value()
});
const accessToken = await getAccessToken(oauth2Client);
您是否已将秘密绑定到该函数? 如果有的话,你可以分享一下你初始化秘密的代码部分吗?