Вызов 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 из лямбда-функции? Я нашел только один пример, и он не работает.

0 ответов

Другие вопросы по тегам