Прямая линия Azure SDK/веб-чатC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Прямая линия Azure SDK/веб-чат

Сообщение Anonymous »

Я хочу использовать DirectLine/Webchat на своем веб-сайте. Теперь я подключаю бота, я создал графический интерфейс, и он работает нормально, но я не могу его подключить. Я покажу свой JS-код и свой контроллер (контроллер пытается выполнить запрос токена, поэтому JS может с ним работать)
JS:

Код: Выделить всё

document.addEventListener('DOMContentLoaded', function() {
const botDiv = document.getElementById('bot-div');
const botHeader = document.getElementById('bot-header');
const webchat = document.getElementById('webchat');

botHeader.addEventListener('click', toggleBotWindow);

function toggleBotWindow() {
const isCollapsed = botDiv.classList.toggle('collapsed');
botDiv.setAttribute('aria-expanded', !isCollapsed);
webchat.classList.toggle('hidden', isCollapsed)
}

async function fetchToken() {
const response = await fetcher.postJson('/ChatBot/GetToken');
const tokenData = await response.json();
return tokenData.token;
}

async function inittalizeBot() {
try {
const token = fetchToken();
window.WebChat.renderWebChat({
directLine: window.WebChat.createDirectLine({
token: token
}),
userID: 'YOUR_USER_ID', //optional
username: 'Web Chat User', //optional
locale: 'en-US'
}, webchat);

const styleSet = window.WebChat.createStyleSet({
rootHeight: '100%',
rootWidth: '50%',
backgroundColor: 'azure2'
});
} catch (error) {
console.error('Fehler Erstellen des Bots', error);
}
}
inittalizeBot();
});

Код: Выделить всё

using System.Net.Http;
using System.Threading.Tasks;
using System.Web.Mvc;
using Newtonsoft.Json.Linq;

namespace Web.Controllers
{
public class ChatBotController : Controller
{
private readonly string directLineSecret = "Imagine my Secret here";

[HttpPost]
public async Task GetToken()
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", directLineSecret);
var response = await client.PostAsync("https://directline.botframework.com/v3/directline/tokens/generate", null);
if (response.IsSuccessStatusCode)
{
var tokenResponse = await response.Content.ReadAsStringAsync();
var token = JObject.Parse(tokenResponse)["token"].ToString();
return Json(new { token });
}
return Json(new { error = "Unable to generate token" });
}
}
}
}
Графический интерфейс робота
Я пробовал это несколько раз с другим кодом, но ничего не получилось, может быть, я просто чего-то не вижу?
Если я делаю запрос с помощью GIT Bash, он работает и возвращает мне токен.
Я хочу получить тот же токен от моего контроллера. Возможно, вы видите мою ошибку.

Подробнее здесь: https://stackoverflow.com/questions/788 ... e-web-chat
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Рассчитать позиции x между двумя точками GPS (прямая линия)
    Anonymous » » в форуме Php
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous
  • Логистическая кривая, созданная CURVE_FIT - прямая линия
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Логистическая кривая, созданная CURVE_FIT - прямая линия
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Логистическая кривая, созданная CURVE_FIT - прямая линия
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Логистическая кривая, созданная CURVE_FIT - прямая линия
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»