Как отправить конкретный идентификатор пользователя из эмулятора бот-фреймворка v4? - PullRequest
0 голосов
/ 08 октября 2019

Мне нужно отправить определенный идентификатор пользователя из эмулятора бота (https://github.com/microsoft/BotFramework-Emulator). Я использую это текстовое поле (см. Рисунок ниже)

enter image description here

Но ничего не отправлено. В активности есть совершенно другой гид. From.Id.

Можно ли отправить сообщение из эмулятора с определенным идентификатором пользователя?

1 Ответ

0 голосов
/ 09 октября 2019

Краткий ответ: если вы используете Direct Line для генерации токена из секрета и указали там идентификатор пользователя (см. Прилагаемый код), то эмулятор должен отдать предпочтение значению над любым значением, которое вы передаетев настройках эмулятора.

В моем личном тестировании настройка идентификатора пользователя, кажется, переопределяет любое другое ранее существующее значение.

Следует отметить, однако, что если вы укажетеЗначение ID пользователя в настройках, вам нужно закрыть диалог с вкладками и начать его заново, повторно введя конечную точку обмена сообщениями и AppId / AppPassword (или повторно подключившись к файлу .bot, если используется). Простое нажатие кнопки «Перезапустить разговор» не приведет к тому, что эмулятор заберет настройку идентификатора пользователя.

Надежда на помощь!

// Listen for incoming requests.
server.post('/directline/token', (req, res) => {
  // userId must start with `dl_` for Direct Line enhanced authentication
  const userId = (req.body && req.body.id) ? req.body.id : `dl_${ Date.now() + Math.random().toString(36) }`;
  const options = {
    method: 'POST',
    uri: 'https://directline.botframework.com/v3/directline/tokens/generate',
    headers: {
      'Authorization': `Bearer ${ process.env.directLineSecret }`
    },
    json: {
      user: {
        Id: `${ userId }`
      }
    }
  };
  request.post(options, (error, response, body) => {
    if (!error && response.statusCode < 300) {
      res.send(body);
      console.log('Someone requested a token...');
    } else {
      res.status(500).send('Call to retrieve token from DirectLine failed');
    }
  });
});

enter image description here

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...