This code uses the Gmail JavaScript API to search the inbox of the authenticated user (userId = me) for email threads that match the specified query. You need to create a new project in Google developer console with the Gmail API enabled.
The scope can be https://www.googleapis.com/auth/gmail.readonly
since this Gmail app requires only read only access to the user’s mailbox.
var threads = function listGmailThreads(userId, query, callback) {
var getPageOfThreads = function (request, result) {
request.execute(function (resp) {
result = result.concat(resp.threads);
var nextPageToken = resp.nextPageToken;
if (nextPageToken) {
request = gapi.client.gmail.users.threads.list({
userId: userId,
q: query,
pageToken: nextPageToken,
});
getPageOfThreads(request, result);
} else {
callback(result);
}
});
};
var request = gapi.client.gmail.users.threads.list({
userId: userId,
q: query,
});
getPageOfThreads(request, []);
};