【发布时间】:2020-07-03 13:04:45
【问题描述】:
我花了一天的大部分时间试图弄清楚如何将 gmail api 与 node.js 一起使用。我按照谷歌网站上的快速入门指南,很快就能够使用该 API。看起来有两种方法可以执行 api 请求。一种方法是采用这种格式:
function listLabels(auth) {
const gmail = google.gmail({version: 'v1', auth});
gmail.users.labels.list({
userId: 'me',
}, (err, res) => {
//do whatever here
});
}
看起来它也可以通过像这样的请求来使用
const https = require('https');
https.get('https://www.googleapis.com/gmail/v1/users/email@gmail.com/messages', (resp) => {//whatever code in here}
我能够弄清楚如何进行身份验证并使用第一种方法。快速入门指南使它变得非常容易。仅使用 url,我无法以第二种方式做到这一点。有谁知道该怎么做?尽管我很可能会使用第一种方式,但我想知道如何使用另一种方式。
【问题讨论】:
-
我可以问你关于你的问题吗?使用 googleapis 的脚本使用了 Gmail API 中的 Users.labels: list 的方法。另一方面,使用 https.get 的脚本使用了 Gmail API 中的 Users.messages: list 方法。所以我无法理解你的目标。您能解释一下您在问题中的目标吗?
-
你在使用访问令牌吗?基本上,您需要验证您的 HTTPS 请求才能使用 API,在第一个示例中,库已经为您完成了所有这些工作。在第二个选项中,您似乎实际上并没有使用 OAuth2 流程。您能否确认您是否确实使用了正确的令牌?
-
@Raserhin 不,我没有使用访问令牌。我不知道怎么做。
-
@Tanaike 我的目标是通过 url 形式的 http 请求使用 gmail api。从文档中看起来是可能的。这两个示例的具体内容无关紧要。我只是想弄清楚如何使用我一般的api。
-
当然有可能!你可以只发送 HTTP 请求。但您实际上需要向 API 验证自己的身份。您需要为您的用户和范围获取令牌。我强烈建议使用OAuth2 Playground。在那里,您将看到在发送 HTTP 获取请求之前需要执行的所有步骤。选择范围,获取访问令牌,然后执行最终的 HTTP 请求。我仍然建议您使用该库,它使所有内容都非常简单。
标签: javascript node.js http gmail-api