所以我使用它:https://github.com/google/google-api-nodejs-client#using-api-keys
这里是nodejs代码:
router.get("/deals", function(req, res, next) {
var key = require('../gmail-a574e06ad196.json');
var jwtClient = new google.auth.JWT(
key.client_email,
null,
key.private_key,
['https://www.googleapis.com/auth/gmail.readonly', 'https://mail.google.com/'], // an array of auth scopes
null
);
jwtClient.authorize(function (err, tokens) {
if (err) {
res.send('123');
return;
}
console.log('token is: ', tokens)
// Make an authorized request to list Drive files.
drive.users.labels.list({
auth: jwtClient,
userId: 'me'
}, function (err, resp) {
console.log(err)
res.send('123')
});
});
});
但是一旦我点击那个api,我就会收到以下错误: 错误: [{domain:' global', 原因:' failedPrecondition', 消息:'错误请求' }]}
我谷歌周围。在某些网站上发现,如果您拥有G-Suite帐户(即付费帐户),则该服务帐户才有效。我的Gmail帐户是一个普通的个人帐户。所以无论我做什么,它都不会工作?
由于
答案 0 :(得分:0)
您无法将服务帐户与普通用户Gmail帐户一起使用,因为无法对其他用户进行微妙访问。你只能用gsuite来做。
您可以考虑直接通过SMTP或IMAP服务器