我正在使用sample12在 ServiceNow 页面上创建一个最小化的网络聊天。使用示例 12 并构建相同的示例,我能够将其导入到 ServiceNow 并到达它出现在新 UI 页面上的位置。但是有两个问题 1)CORS 2)对 BOT 的身份验证没有发生。
另外,我该如何处理身份验证?
我使用以下过程来托管页面
有任何想法吗 ?这种嵌入(如下所示)对我们有用。但是我们需要在 servicenow 上进行最小化的网络聊天
我现在通过托管一个返回令牌的应用服务来完成这项工作。该应用程序现在可以访问 BOT。
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using System.Web.Mvc;
using Newtonsoft.Json.Linq;
using WebApplication1.Controllers;
namespace WebApplication1.Controllers
{
[Route("[controller]/[action]")]
[ApiController]
public class DirectLineController : Controller
{
//[HttpPost]
//public async Task<string> PartialToken()
//{
// string data = await GetToken(false);
// return data;
//}
//[HttpGet]
//public async Task<string> Token()
//{
// string data = await GetToken(true);
// return data;
//}
[HttpPost]
public async Task<string> GetToken()
{
string data = String.Empty;
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer",
"Hir-4RmrbUY.cwA.aqo.ojSLtakhThiswontworkdonteventrym64oi_2LE_sB4C5BizQwaCg__q1M");
var response = await client.PostAsync("https://directline.botframework.com/v3/directline/tokens/generate", null);
if (response.IsSuccessStatusCode)
{
var raw = await response.Content.ReadAsStringAsync();
if (true)
{
data = raw;
}
else
{
data = JObject.Parse(raw)["token"].Value<string>();
}
}
}
return data;
}
//protected override void ExecuteCore()
//{
// throw new NotImplementedException();
//}
}
}