Microsoft Bot Framework (SDK4 Nodejs): Как заставить бота выполнить какое-либо действие, например, аутентификацию клиента с использованием API? - PullRequest
0 голосов
/ 30 мая 2019

Я хочу, чтобы чат-бот Microsoft Bot Framework проверял моего клиента с помощью API FreshService.

Я уже запросил у пользователя его имя пользователя и пароль (соответствующий: company-domain.freshservice.com) и сохранил сведения о клиентах с помощью средства доступа к состоянию (как показано в документах, предоставленных для SDK4 Microsoft Bot Framework). Теперь, после получения подробностей, я хочу, чтобы бот отправил http-запрос на freshservice api и аутентифицировал клиента. И отобразить результат аутентификации бота в окне чата (в данный момент эмулятор Bot Framework). Пожалуйста, помогите, так как я не могу найти способ сделать это.

1 Ответ

2 голосов
/ 30 мая 2019

Freshservice API построен на основе CURL, поэтому немного сложно понять, как его использовать в Node. Я взял первый пример и преобразовал его для вас:

От:

curl -u user@yourcompany.com: test -H "Тип контента: application / json" -X GET https://domain.freshservice.com/helpdesk/tickets.json

Кому:

// Convert to base64
const loginInfo = Buffer.from(`${ username }:${ password }`).toString('base64');
const response = await axios.get(`https://<yourDomain>.freshservice.com/helpdesk/tickets.json`, {
    headers: {
        'Content-Type': 'application/json',
        Authorization: `Basic ${ loginInfo }`
    }
});
await context.sendActivity(JSON.stringify(response.data, null, 2));

Это приведет к полному ответу JSON:

enter image description here

Как вы решите отображать, что будет зависеть от вас.


Примечания:

  • Вам потребуется установить axios (или какой-либо другой сервис, который может делать запросы GET) npm i axios
  • Freshservice поддерживает OAuth , который также поддерживается в BotFramework
    • Я НАСТОЯТЕЛЬНО рекомендую пойти по этому пути, потому что это означает, что вам не нужно разбираться в хранении и шифровании информации для входа в систему. Это значительно более безопасно и меньше головной боли для вас. По сути, вместо сохранения user / pass, он предоставит пользователю приглашение для входа в систему. После регистрации он возвращает токен, который вы будете хранить и использовать для отправки запросов. Теперь, если злоумышленник хочет украсть имена пользователей и пароли, его единственный способ сделать это - Freshservice API. Если вы сохраняете пользователя / передаете себя, они также могут попытаться атаковать ваш бот-клиент, историю бесед ботов и ваше хранилище ботов.
    • Для начала прочитайте Добавьте аутентификацию вашему боту и используйте Пример аутентификации бота в качестве руководства.
...