public ServiceTokenModel GetAccessTokenByCode(string code) { var result = new ServiceTokenModel(); var conn = MxAppHost.Instance.Container.Resolve <IServiceConnection>(); using (var client = new HttpClient()) { var values = new Dictionary <string, string> { { "grant_type", "authorization_code" }, { "code", code }, { "redirect_uri", conn.RedirectUrl }, { "client_id", conn.ClientId }, { "client_secret", conn.SecretKey } /*{"redirect_uri","https://iafc.matrixdev.net/" }, * {"client_id", "29192542"}, * {"client_secret", "Bi4IB9Yhh5PrOa3y7PykntuQKg90ZNDiNes7tDNfwwKDgYIz4v"}*/ }; var content = new FormUrlEncodedContent(values); var response = client.PostAsync("{0}/Token".Fmt(conn.EndpointUrl), content).Result; // where accessToken create from successfully ask Helix exchange infor from ServiceTokenModel above. var respToken = new SiteAccessTokenModel(); var responseString = response.Content.ReadAsStringAsync().Result; log.Info("resp:{0}".Fmt((new { helix = responseString, red = conn.RedirectUrl, client = conn.ClientId, sec = conn.SecretKey }))); respToken = responseString.FromJson <SiteAccessTokenModel>(); if (respToken != null) { result.Refresh_token = respToken.Refresh_token; result.Token = respToken.Access_token; result.IssueTime = respToken.Issued; result.ExpireTime = respToken.Expires; result.ClientId = respToken.ContactId.ToString(); } /*_log.Debug($"from Helix service client secon-token:{responseString.SerializeToString()}," + * $" objReso:{respToken.SerializeToString()}, Token:{respToken.Access_token}");*/ } return(result); }
public ActionResult Index_(string code = "") { if (String.IsNullOrEmpty(code)) { return(Redirect("~/?code=null")); } // have code & not login then do activate code if ((this.MyId().IsNullOrEmptyGuid() || this.MyId().IsOneGuid()) && !String.IsNullOrEmpty(code)) { log.Info("what myid: {0}, by code:{1}".Fmt(this.MyId(), code)); /*var m = HelixServiceClient.Init(ServiceConn) * .GetAccessTokenByCode(code);*/ var conn = MxAppHost.Instance.Container.Resolve <IServiceConnection>(); var result = new ServiceTokenModel(); using (var client = new HttpClient()) { var values = new Dictionary <string, string> { { "grant_type", "authorization_code" }, { "code", code }, { "redirect_uri", conn.RedirectUrl }, { "client_id", conn.ClientId }, { "client_secret", conn.SecretKey } /*{"redirect_uri","https://iafc.matrixdev.net/" }, * {"client_id", "29192542"}, * {"client_secret", "Bi4IB9Yhh5PrOa3y7PykntuQKg90ZNDiNes7tDNfwwKDgYIz4v"}*/ }; var content = new FormUrlEncodedContent(values); var response = client.PostAsync("{0}/Token".Fmt(conn.EndpointUrl), content).Result; // where accessToken create from successfully ask Helix exchange infor from ServiceTokenModel above. var respToken = new SiteAccessTokenModel(); var responseString = response.Content.ReadAsStringAsync().Result; log.Info("resp:{0}".Fmt((new { helix = responseString, red = conn.RedirectUrl, client = conn.ClientId, sec = conn.SecretKey }))); respToken = responseString.FromJson <SiteAccessTokenModel>(); if (respToken != null) { result.Refresh_token = respToken.Refresh_token; result.Token = respToken.Access_token; result.IssueTime = respToken.Issued; result.ExpireTime = respToken.Expires; result.ClientId = respToken.ContactId.ToString(); } /*_log.Debug($"from Helix service client secon-token:{responseString.SerializeToString()}," + * $" objReso:{respToken.SerializeToString()}, Token:{respToken.Access_token}");*/ } /*HelixClient response = HelixServiceClient.Init(ServiceConn) * .GetAccessTokenByCode(code).Instance(); * if (response.HelixDataResponse.ResponseStatus.Is(MatrixGroup.Data.ResponseStatus.Warning)) * { * ViewData["warning"] = response.HelixDataResponse.Message; * return Redirect("~/NotifyInfo/WarningInfo"); * }*/ } return(Redirect("~/?code={0}".Fmt(code))); }