【发布时间】:2020-09-01 04:18:33
【问题描述】:
我一直在尝试使用 google nodejs 库从我的 domail 中获取另一个用户的电子邮件,以便迁移它。我的帐户是超级管理员,我的 API 启用了具有以下范围的广域委派权限:
"https://www.googleapis.com/auth/apps.groups.migration",
"https://mail.google.com/",
"https://www.googleapis.com/auth/gmail.settings.sharing"
我已使用模拟访问权限登录 API
async function initializeGmail(emailToImpersonate) {
const auth = await getAuth(emailToImpersonate);
return google.gmail({
version: 'v1',
auth
});
}
async function getAuth(emailToImpersonate) {
const jwtClient = new google.auth.JWT(
client_email,
null,
private_key,
SCOPES,
emailToImpersonate
);
await jwtClient.authorize();
return jwtClient;
}
我已在要迁移的帐户中添加授权许可,以便我可以从我的主帐户访问其电子邮件
const requestBody = {
delegateEmail: user.email,
verificationStatus: 'accepted'
}
await gmail.users.settings.delegates.create({userId, requestBody})
我请求迁移帐户的电子邮件,但出现以下错误
const gmail = await initializeGmail(userEmail);
const messages = (await gmail.users.messages.list({auth, userId:userEmail})).data.messages;
code: 403,
errors: [
{
domain: 'global',
reason: 'forbidden',
message: 'Delegation denied for sysadmin@boatjump.com'
}
]
任何帮助或想法将不胜感激
【问题讨论】:
-
delegate.Emailuser.email是要迁移的账户邮箱还是你的主账户? -
我想将一个帐户委托给我的主帐户
标签: node.js gmail-api google-admin-sdk