好的,所以我发现了问题。
问题1:
在遵循Node.js快速入门指南的同时,该教程中的示例
var SCOPES = ['https://www.googleapis.com/auth/gmail.readonly'];
当我得到的时候
.json,看起来像:
{ "access_token": "xxx_a_long_secret_string_i_hided_xxx", "token_type": "Bearer", "refresh_token": "xxx_a_token_i_hided_xxx", "expiry_date": 1451721044161}
产生的那些标记 仅 考虑
auth/gmail.readonly了教程代码中的范围。
所以我删除了第一个
.json,从我的最终作用域数组中添加了作用域(我在问题中发帖了),然后再次运行了教程设置,得到了一个新令牌。
问题二
在传递给API的对象中,我正在发送:
{ auth: auth, userId: 'me', message: { raw: raw }}
但这是错误的,
message应该调用key
resource。
最终设置:
这是我添加到教程代码中的内容:
function makeBody(to, from, subject, message) { var str = ["Content-Type: text/plain; charset="UTF-8"n", "MIME-Version: 1.0n", "Content-Transfer-Encoding: 7bitn", "to: ", to, "n", "from: ", from, "n", "subject: ", subject, "nn", message ].join(''); var enpredMail = new Buffer(str).toString("base64").replace(/+/g, '-').replace(///g, '_'); return enpredMail;}function sendMessage(auth) { var raw = makeBody('myrealemail@gmail.com', 'myrealemail@gmail.com', 'test subject', 'test message'); gmail.users.messages.send({ auth: auth, userId: 'me', resource: { raw: raw } }, function(err, response) { res.send(err || response) });}
并使用以下命令调用所有内容:
fs.readFile(secretlocation, function processClientSecrets(err, content) { if (err) { console.log('Error loading client secret file: ' + err); return; } // Authorize a client with the loaded credentials, then call the // Gmail API. authorize(JSON.parse(content), sendMessage);});
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)