When calling getCode(), getToken(code), and getEmailData(token) from the below class in succession, I get the error POST http://localhost:9000/api/email net::ERR_CONNECTION_REFUSED
on
const {
data: { messagesTotal },
errors,
} = await this.gmailClient.users.getProfile({
userId: "me",
});
I'm not able to figure out why this is, and it's the case across users, with a throttle, and with the list labels function as well. Anyone know what might be the issue?
export default class GmailClient {
authClient;
gmailClient;
SCOPES = ["https://www.googleapis.com/auth/gmail.readonly"];
constructor() {
//grab the credentials from the json file
const credentials = JSON.parse(
fs.readFileSync("controllers/credentials.json").toString()
);
const { client_secret, client_id, redirect_uris } = credentials.web;
this.authClient = new google.auth.OAuth2(
client_id,
client_secret,
"http://localhost:3000"
);
this.gmailClient = google.gmail({ version: "v1", auth: this.authClient });
}
async getEmailData(token) {
// no creds saved
if (!this.authClient.credentials?.refresh_token) {
this.authClient.setCredentials(token);
this.gmailClient = google.gmail({ version: "v1", auth: this.authClient });
}
const {
data: { messagesTotal },
errors,
} = await this.gmailClient.users.getProfile({
userId: "me",
});
console.log("Error", errors);
return { labels: [`Messages total ${messagesTotal}`] };
}
getCode() {
const authUrl = this.authClient.generateAuthUrl({
access_type: "offline",
scope: this.SCOPES,
});
return { authUrl };
}
async getToken(code) {
try {
const { tokens } = await this.authClient.getToken(code);
this.authClient.setCredentials(tokens);
return { token: tokens };
} catch (err) {
console.log("Error: Bad User Code: ", err);
return res.json({ token: null });
}
}
}
Via Active questions tagged javascript - Stack Overflow https://ift.tt/2FdjaAW
Comments
Post a Comment