public ChatResult Answer(string robotId, string query, BaiduSession session) { string token = session.AccessToken; string host = "https://aip.baidubce.com/rpc/2.0/unit/service/chat?access_token=" + token; var request = (HttpWebRequest)WebRequest.Create(host); request.Method = "post"; request.ContentType = "application/json"; request.KeepAlive = true; var robotRequest = RobotRequest.Create(robotId, query, session.SesstionKey); var str = JsonConvert.SerializeObject(robotRequest); byte[] buffer = Encoding.UTF8.GetBytes(str); request.ContentLength = buffer.Length; if (session.IsInternal) { request.Proxy = new WebProxy("http://sg.pachost.mid.dom") { UseDefaultCredentials = true }; } request.GetRequestStream().Write(buffer, 0, buffer.Length); var response = (HttpWebResponse)request.GetResponse(); var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); string result = reader.ReadToEnd(); return(ToAskResult(result)); }
private BaiduSession LoginBaidu(bool isInternal) { var service = new AuthorizationService(); var session = BaiduSession.CreateDefault(isInternal); service.GetAccessToken(session); return(session); }
public ChatbotController(BaiduSession session, ChatService chatService, RobotService robotService, CrmService crmService, ChatLogCache sessionCache) { _baiduSession = session; _chatService = chatService; _robotService = robotService; _sessionCache = sessionCache; _crmService = crmService; }
public void _01_ShouldGetAccessToken() { var service = new AuthorizationService(); var session = BaiduSession.CreateDefault(); service.GetAccessToken(session); Assert.IsFalse(string.IsNullOrEmpty(session.AccessToken)); }
private HttpClient GetClient(BaiduSession session) { if (!session.IsInternal) { return(new HttpClient()); } return(new HttpClient(new HttpClientHandler() { Proxy = new WebProxy("http://sg.pachost.mid.dom") { UseDefaultCredentials = true } })); }
public static void RegisterComponents(BaiduSession baiduSession, bool isInternal) { var container = new UnityContainer(); var chatSessions = new ChatLogCache(); var crmSession = CrmSession.CreateDefault(isInternal); container.RegisterInstance(crmSession); container.RegisterInstance(baiduSession, InstanceLifetime.Singleton); container.RegisterInstance(chatSessions, InstanceLifetime.Singleton); container.RegisterType <ChatService>(); container.RegisterType <RobotService>(); container.RegisterType <TokenService>(); container.RegisterType <ChatLogService>(); container.RegisterType <LeadService>(); container.RegisterType <CrmService>(); GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(container); }
public void GetAccessToken(BaiduSession session) { var client = GetClient(session); String authHost = "https://aip.baidubce.com/oauth/2.0/token"; List <KeyValuePair <String, String> > paraList = new List <KeyValuePair <string, string> >(); paraList.Add(new KeyValuePair <string, string>("grant_type", "client_credentials")); paraList.Add(new KeyValuePair <string, string>("client_id", session.ClientId)); paraList.Add(new KeyValuePair <string, string>("client_secret", session.ClientSecret)); var response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result; var result = response.Content.ReadAsStringAsync().Result; try { response.EnsureSuccessStatusCode(); JsonConvert.PopulateObject(result, session); } catch (Exception ex) { throw new Exception(ex.Message + ":" + result); } }