我无法通过gmail-api中的ID检索邮件

时间:2019-05-31 06:23:51

标签: javascript node.js ecmascript-6 google-api gmail-api

所以我用两个方法checkInbox()和getMail()创建了一个Check类。

checkInbox()检索所有邮件,而getMail(msgId)将使用输入ID检索邮件。

checkInbox()工作正常,但getMail()方法提供的输出与checkInbox()相同,即列出所有邮件,而不返回请求的邮件。

class Check{

    constructor(auth){
        this.me = 'mygmailid';
        this.gmail = google.gmail({version: 'v1', auth});
        this.auth = auth;
    }

    checkInbox(){
        this.gmail.users.messages.list({
            userId: this.me
        }, (err, res) => {
            if(!err){
                console.log(res.data);
            }
        })
    }

    getMail(msgId){
        this.gmail.users.messages.get({
            'userId': this.me,
            'id': msgId
        }, (err, res) => {
            if(!err){
                console.log(res);
            }
        });
    }

}

var obj = new dem(auth);
obj.getMail('someRandomIdNumber');

我没有附加授权码,因为它可以正常工作。同样,导入和导出类也没有错误。

1 个答案:

答案 0 :(得分:0)

这正是您要获取gmail消息应该执行的操作:

  const response = await this.gmail.users.messages.get({
    auth: this.oAuth2Client,
    userId: this.gmailAddress,
    id: messageId,
    format: 'full'
  })

您可以找到整个实现here。这是Gmail-API上的包装纸