Gmail API创建过滤器出现500错误

时间:2020-05-25 10:36:43

标签: javascript node.js gmail gmail-api

我正在尝试使电子邮件自动进入Gmail垃圾邮件箱。我想通过为用户提供的每封垃圾电子邮件创建一个gmail过滤器来做到这一点。我与Cloud Firestore合作,以获取用户提供的所有给定的电子邮件作为垃圾邮件电子邮件地址。我想制作一个通过每个保存的电子邮件地址的gmail过滤器,并将gmail收件箱中的电子邮件标签从收件箱替换为垃圾邮件。我已经尝试使用以下代码进行此操作:

exports.addSpammer = async (req, res) => {

    const gmail = google.gmail({version: 'v1', oAuth2Client})

    try {
        const data = await db.collection('spammedEmails').where('username', '==', req.user.username).get()

        if (data.empty) {
            return res.status(404).json({error: 'No spammed email addresses found'})
        } else {

            data.map(async (doc) => {
                await gmail.users.settings.filters.create({
                    userId: 'me',
                    id: passomatic(1),
                    criteria: {
                        from: `${doc.data().spammedEmail}`
                    },
                    action: {
                        removeLabelIds: [
                            "INBOX"
                        ],
                        addLabelIds: [
                            "SPAM"
                        ]
                    }
                })
            })
        }

        return res.status(200).json('Spammer added')
    } catch (err) {
        if (err.code === "auth/id-token-expired")
            return res.status(401).json({general: 'Login expired, please login again'});
        else
            return res.status(500).json({error: err.code})
    }
} 

如果我在邮递员中尝试此操作,则会得到以下信息: Postman example

在编辑器中,控制台中也没有错误消息: No console error

那么,有谁知道发生了什么,为什么它不起作用以及如何解决?预先感谢。

0 个答案:

没有答案