Вызов Genesys API из Lambda с использованием Node js
Мне нужно получить список пользователей и очередей от Genesys и отобразить их в приложении React/NodeJS, размещенном на Amazon AWS. Я хочу использовать функцию Lambda, чтобы получить списки и вернуть их в приложение.
Код здесь https://github.com/PrinceMerluza/prince-purecloud-aws-lambda-function/blob/master/main.py кажется именно тем, что мне нужно, как только я переведу с Python, но моя попытка аутентификации здесь возвращает неопределенный токен доступа:
const base64 = require('../../../../../node_modules/base-64');
//import { base64 } from 'js-base64';
const { resolve } = require('path');
const platformClient = require('purecloud-platform-client-v2/dist/node/purecloud-platform-client-v2.js');
const requests = require('../../../../../node_modules/request');
const usersApi = new platformClient.UsersApi();
const routingApi = new platformClient.RoutingApi();
const client = platformClient.ApiClient.instance;
const CLIENT_ID = '691982c9-ef27-4c8a-b41e-181db6aecc39';
const CLIENT_SECRET = 'U2gaFlTTkou46hEF-Rwi5pFho1nu0GCnh67nHdwX_3k';
//const authorization = base64.b64encode(`${CLIENT_ID}:${CLIENT_SECRET}`).decode('ascii');
const authorization = Buffer.from(`${CLIENT_ID}:${CLIENT_SECRET}`).toString('base64');
const aut2 = Buffer.from(authorization, 'base64').toString('ascii');
const requestHeaders = {
Authorization: `Basic ${aut2}`,
'Content-Type': 'application/x-www-form-urlencoded',
};
const requestBody = {
grant_type: 'client_credentials',
};
exports.handler = async (event) => {
const response = requests.post('https://login.mypurecloud.com/oauth/token', { data: requestBody, headers: requestHeaders });
const accessTokenInfo = response.json().access_token;
console.log("Access Token", accessTokenInfo);
return "success";
};
Я думаю, что проблема связана с кодировкой авторизации base64, но я пробовал несколько вещей, и ничего не работает.
Можно ли вообще вызвать Genesys API из лямбда-функции? Я нашел только один пример, и он не работает.