Я получаю ошибку в своем ксерокоде. Там написано, что xero.apiCallback не является функцией. Кажется, что другие функции в xero работают.
Вот мой код:
require('dotenv').config();
const express = require('express');
const XeroRouter = express.Router();
const { XeroClient } = require('xero-node');
const { TokenSet } = require('openid-client');
const client_id = process.env.CLIENT_ID;
const client_secret = process.env.CLIENT_SECRET;
const redirectUrl = process.env.REDIRECT_URI;
const scopes = "openid profile email accounting.settings accounting.reports.read accounting.journals.read accounting.contacts accounting.attachments accounting.transactions offline_access";
const xero = new XeroClient({
clientId: client_id,
clientSecret: client_secret,
redirectUris: [redirectUrl],
scopes: scopes.split(" "),
});
if ( !client_secret || !redirectUrl) {
throw Error('Environment Variables not all set - please check your .env file in the project root or create one!')
}
XeroRouter.get('/', async (req, res) => {
try {
let consentUrl = await xero.buildConsentUrl();
res.redirect(consentUrl);
} catch (e) {
res.status(e.status || 500);
console.log(e);
}
});
XeroRouter.get("/callback", async (req, res) => {
let tokenSet = await xero.apiCallback(req.url);
console.log(req.url); //This has value
console.log(tokenSet); // this returns TokenSet {}
});
module.exports = XeroRouter;
Я не уверен, почему apiCallback не работает, но он говорит, что это работает в документации.