我如何使用nodejs" request"用于访问gmail帐户中的线程的库

时间:2017-04-19 15:18:40

标签: node.js google-api gmail-api

我必须专门使用请求模块。 我有刷新令牌和访问令牌。

request({
            method: "GET",
           uri:"https://www.googleapis.com/gmail/v1/users/me/threads",
            headers: {
                "access_token": 'access_token',
                "refresh_token": 'refresh_token',
                "token_type": 'Bearer',
                "Content-Type": "application/json"
            },
        },
        function(err, response, body) {
            if(err){
                console.log(err); // Failure
            } else {
                console.log(response);
               // done(null);// Success!
            }
        });

每当我运行此操作时都会出现401错误,表示需要登录。 另外我如何使用特定的查询" q"并随请求发送。

2 个答案:

答案 0 :(得分:0)

以下样本怎么样?

要使用此功能,请在示波器中加入https://mail.google.com/,并在Google API控制台上启用Gmail API。如果您已经完成它们,请忽略它们。

我还包括" q"在脚本中。详细信息为https://developers.google.com/gmail/api/v1/reference/users/threads/list。请检查一下。

脚本:

var request = require('request');
request({
        url: 'https://www.googleapis.com/gmail/v1/users/me/threads',
        method: 'GET',
        headers: {
            "Content-Type": "application/json",
            "Authorization": "Bearer ### your access token ###"
        },
        qs: {
            "q": "from:### mail address ###", // For example, a filter is added by ``from``.
            "fields": "threads"
        }
    },
    function (err, response, body) {
        if(err){
            console.log(err); // Failure
        } else {
            console.log(body);
           // done(null);// Success!
    }
});

答案 1 :(得分:0)

关注NodeJS Quickstart for Gmail。它已包含登录实现:

function authorize(credentials, callback) {
  var clientSecret = credentials.installed.client_secret;
  var clientId = credentials.installed.client_id;
  var redirectUrl = credentials.installed.redirect_uris[0];
  var auth = new googleAuth();
  var oauth2Client = new auth.OAuth2(clientId, clientSecret, redirectUrl);

  // Check if we have previously stored a token.
  fs.readFile(TOKEN_PATH, function(err, token) {
    if (err) {
      getNewToken(oauth2Client, callback);
    } else {
      oauth2Client.credentials = JSON.parse(token);
      callback(oauth2Client);
    }
  });
}

拨打Users.messages.list Users.threads.list时,请使用“q”。它包括JS样本供您参考:

request = gapi.client.gmail.users.messages.list({
          'userId': userId,
          'pageToken': nextPageToken,
          'q': query
        });
  

'q'仅返回与指定查询匹配的消息。支持   与Gmail搜索框相同的查询格式。例如,   “from:someuser@example.com rfc822msgid:is:unread”。