示例#1
0
        public ApiResponse Edit(string business_id, string id)
        {
            ApiResponse response     = new ApiResponse();
            var         access_token = Request.Cookies["access_token"];
            var         url          = _appSettings.BaseUrls.Api + "brands/channels/single/" + business_id + '/' + id + "/?access_token=" + access_token;
            var         data         = Core.Helpers.WebHelper.HttpGetAsync <Channel>(url).Result;

            if (data == null)
            {
                return(response);
            }

            url = _appSettings.BaseUrls.Api + "brands/channels/list/" + business_id + "/?access_token=" + access_token;
            var rs = Core.Helpers.WebHelper.HttpGetAsync <ChannelFeed>(url).Result;

            if (rs == null || rs.Data == null)
            {
                rs = new ChannelFeed {
                    Data = new List <Channel>()
                }
            }
            ;

            var model = new ChannelAddEdit {
                AppId = _appSettings.ClientId, BusinessId = business_id, Channels = rs.Data, ChannelId = id, PageId = data.ext_id, PageName = data.name, Secret = data.secret
            };
            var result = _viewRenderService.RenderToStringAsync("Channel/Edit", model).Result;

            response.data = result;
            response.ok   = true;
            return(response);
        }
示例#2
0
        public ApiResponse ZaloUpsert(string user_id, string business_id, string channel_id, string oaid, string oasecret, string page_name, string template_id)
        {
            ApiResponse response = new ApiResponse();

            response.msg = "Add channel error";

            var access_token = Request.Cookies["access_token"] ?? "";

            Channel para = new Channel();

            para.business_id = business_id;
            para.ext_id      = oaid;
            para.name        = page_name;
            para.id          = channel_id;
            para.template_id = template_id;
            para.token       = oasecret;
            para.type        = "zalo_page";
            para.secret      = oasecret;

            var rs1 = Core.Helpers.WebHelper.HttpPostAsync(_appSettings.BaseUrls.Api + "brands/zalos/upsert", para).Result;

            if (!rs1)
            {
                return(response);
            }

            var url = _appSettings.BaseUrls.Api + "brands/channels/list/" + business_id + "/?access_token=" + access_token;

            var rs = Core.Helpers.WebHelper.HttpGetAsync <ChannelFeed>(url).Result;

            if (rs == null || rs.Data == null)
            {
                rs = new ChannelFeed {
                    Data = new List <Channel>()
                }
            }
            ;
            var result = _viewRenderService.RenderToStringAsync("Channel/Settings", new ChannelSettings {
                business_id = business_id, Channels = rs.Data, ZaloAuth = ""
            }).Result;

            response.view = result;
            response.msg  = "Add channel ok";
            response.ok   = true;
            return(response);
        }
示例#3
0
        async Task <ChannelFeed> ReallyGetData(string id, string api, CancellationToken ct)
        {
            RESTService api_client    = new RESTService();
            string      channel_feeds = await api_client.Get("https://api.thingspeak.com/channels/" + id + "/feeds.json?timezone=Asia%2FBangkok&api_key=" + api + "&results=2", ct);

            var settings = new JsonSerializerSettings
            {
                NullValueHandling     = NullValueHandling.Ignore,
                MissingMemberHandling = MissingMemberHandling.Ignore
            };

            ChannelFeed feeds_json = JsonConvert.DeserializeObject <ChannelFeed>(channel_feeds, settings);

            return(feeds_json);
            //temperature.Text = feeds_json.feeds[1].field1;
            //pH.Text = feeds_json.feeds[1].field2;
            //update_time.Text = feeds_json.feeds[1].created_at.ToString("dd/MM/yyyy HH:mm tt");
        }
示例#4
0
        public ApiResponse Settings(string user_id, string business_id)
        {
            //var timestame = Core.Helpers.CommonHelper.DateTimeToUnixTimestamp(DateTime.UtcNow);

            //var templatedata = new Dictionary<string, string>();
            //templatedata.Add("content", "alo thử quan tâm");

            //var data = new Dictionary<string, object>();
            //data.Add("phone", 84982745193L);
            //data.Add("templateid", "c8754d9b71de9880c1cf");
            //data.Add("templatedata", templatedata);
            //data.Add("callbackdata", "https://fbwebhook.hibaza.com/brands/zalos/webhook");

            //var t = JsonConvert.SerializeObject(data);
            //var mac = Core.Helpers.CommonHelper.sha256("1282263163182093624" + JsonConvert.SerializeObject(data) +
            //    timestame + "37TU121BboZ5DXNyExHx");
            //var uri = "https://openapi.zaloapp.com/oa/v1/sendmessage/phone/invite_v2?oaid=1282263163182093624&data=" +
            //    JsonConvert.SerializeObject(data) + "&timestamp=" + timestame + "&mac=" + mac;
            //var rsss = Core.Helpers.WebHelper.HttpPostAsync<JObject>(uri, null).Result;



            //ZaloOaInfo info = new ZaloOaInfo(1282263163182093624, "37TU121BboZ5DXNyExHx");
            //ZaloOaClient oaClient = new ZaloOaClient(info);

            //long userId = 84982745193L; // user id or phone number;
            //var profile = oaClient.getProfile(userId);

            // var uid = (string)profile["data"]["userId"];


            //            templatedata = {
            //                "content":"Chào bạn, Chúc bạn một ngày vui vẻ!"
            //}
            //            data = {
            //                'phone': phone,
            //    'templateid': template_id,
            //    'templatedata': templatedata
            //            }
            //params = {
            //                'data': data
            //}

            //var appInfo = new Zalo3rdAppInfo(4195900329485784724, "3RJs6hbXkNSScG5VZI76", _appSettings.BaseUrls.Web + "zaloauth");
            //var appClient = new Zalo3rdAppClient(appInfo);

            //var list = new List<long>();
            //list.Add(84982745193);
            //var token = "yJJ8ROH8S27uCiDaW4DtB_G-mM6CMITlZKh3Vg1b4qMkNDfCjqCVURnwgbgqGKTDWcto1RWLAJUb6z5xZ2GTTl8_oJBq90GWw0d2PUjmCJJtN-9zpaKyRF5WrY6CGXyKXMAcAfXzOM2YNzDQhI4A7z4QsbEjAIX0qqt4SgfA45QpOQ5wiciHJSfrm4QtPZPJltdn5eTsHWogQ8WAh11b6fKkYIge3MK_gHA96OaDNGkoDAGFcWrr9kOqmZFdCImvaYZQT-vH5aBoKF1Ttsb34ELuWpjCIO5yZbDz80";

            //JObject sendAppRequest = appClient.sendAppRequest(token, list, "test moi ket ban");


            ApiResponse response     = new ApiResponse();
            var         access_token = Request.Cookies["access_token"] ?? "";
            AgentModel  model        = null;

            if (!string.IsNullOrWhiteSpace(user_id) && !string.IsNullOrWhiteSpace(access_token))
            {
                var u = _appSettings.BaseUrls.Api + "brands/agents/single/" + user_id + "/?access_token=" + access_token;
                model = Core.Helpers.WebHelper.HttpGetAsync <AgentModel>(u).Result;
            }
            if (model == null)
            {
                return(response);
            }

            var url = _appSettings.BaseUrls.Api + "brands/channels/list/" + business_id + "/?access_token=" + access_token;

            var rs = Core.Helpers.WebHelper.HttpGetAsync <ChannelFeed>(url).Result;

            if (rs == null || rs.Data == null)
            {
                rs = new ChannelFeed {
                    Data = new List <Channel>()
                }
            }
            ;
            var result = _viewRenderService.RenderToStringAsync("Channel/Settings", new ChannelSettings {
                business_id = business_id, Channels = rs.Data, ZaloAuth = ""
            }).Result;

            response.view = result;
            response.ok   = true;
            Response.Cookies.Delete("edit_zalo_id");
            return(response);
        }
示例#5
0
        public ApiResponse UpsertPersonalZalo()
        {
            ApiResponse response = new ApiResponse();

            response.msg = "Add channel error";
            try
            {
                var id_zalo_appid       = Request.Cookies["id_zalo_appid"];
                var id_zalo_channelid   = Request.Cookies["id_zalo_channelid"];
                var id_zalo_business_id = Request.Cookies["id_zalo_business_id"];
                var id_zalo_appsecret   = Request.Cookies["id_zalo_appsecret"];
                var id_zalo_name        = Request.Cookies["id_zalo_name"];
                var id_zalo_templateid  = Request.Cookies["id_zalo_templateid"];
                var codeZalo            = Request.Cookies["codeZalo"];

                if (string.IsNullOrWhiteSpace(codeZalo) || string.IsNullOrWhiteSpace(id_zalo_business_id))
                {
                    return(response);
                }

                var     appInfo   = new Zalo3rdAppInfo(Convert.ToInt64(id_zalo_appid), id_zalo_appsecret, _appSettings.BaseUrls.Web + "zaloauth");
                var     appClient = new Zalo3rdAppClient(appInfo);
                JObject tokenObj  = appClient.getAccessToken(codeZalo);

                var token = (string)tokenObj["access_token"];
                if (token == null)
                {
                    return(response);
                }
                var profile    = appClient.getProfile(token, "id,name,birthday,gender,picture");
                var profile_id = (string)profile["id"];
                if (!string.IsNullOrWhiteSpace(profile_id))
                {
                    // upsert
                    Channel para = new Channel();
                    para.business_id = id_zalo_business_id;
                    para.ext_id      = id_zalo_appid;
                    para.name        = id_zalo_name;
                    para.id          = id_zalo_channelid;
                    para.template_id = id_zalo_templateid;
                    para.token       = token;
                    para.type        = "zalo_personal";
                    para.secret      = id_zalo_appsecret;

                    var rs1 = Core.Helpers.WebHelper.HttpPostAsync(_appSettings.BaseUrls.Api + "brands/zalos/upsert", para).Result;
                    if (!rs1)
                    {
                        return(response);
                    }
                    //  var rs1 = Core.Helpers.WebHelper.HttpPostAsync(_appSettings.BaseUrls.Api + "brands/zalos/upsert/zalo-personal/" + id_zalo_business_id + "/" + id_zalo_channelid + "/" + profile_id + "/" + token + "/" + id_zalo_name + "/" + id_zalo_templateid, null).Result;

                    var access_token = Request.Cookies["access_token"] ?? "";
                    var url          = _appSettings.BaseUrls.Api + "brands/channels/list/" + id_zalo_business_id + "/?access_token=" + access_token;

                    var rs = Core.Helpers.WebHelper.HttpGetAsync <ChannelFeed>(url).Result;
                    if (rs == null || rs.Data == null)
                    {
                        rs = new ChannelFeed {
                            Data = new List <Channel>()
                        }
                    }
                    ;
                    var result = _viewRenderService.RenderToStringAsync("Channel/Settings", new ChannelSettings {
                        business_id = id_zalo_business_id, Channels = rs.Data, ZaloAuth = ""
                    }).Result;
                    response.msg  = "Add channel ok";
                    response.view = result;
                    response.ok   = true;

                    Response.Cookies.Delete("id_zalo_appid");
                    Response.Cookies.Delete("id_zalo_channelid");
                    Response.Cookies.Delete("id_zalo_business_id");
                    Response.Cookies.Delete("id_zalo_appsecret");
                    Response.Cookies.Delete("id_zalo_name");
                    Response.Cookies.Delete("id_zalo_templateid");
                    Response.Cookies.Delete("codeZalo");

                    return(response);
                }
                return(response);
            }
            catch (Exception ex)
            {
                response.msg = "Add channel error " + ex.Message;
                response.ok  = false;
                return(response);
            }
        }
示例#6
0
        async void Handle_picker(object sender, EventArgs e)
        {
            int current_index = channel_picker.SelectedIndex;

            if (scheduleThread != null)
            {
                return;
            }
            else
            {
                scheduleThread = Thread.CurrentThread;
            }
            CancellationTokenSource cts;

            while (true)
            {
                cts = new CancellationTokenSource();

                //Check internet connection
                //var connect_status = Connectivity.NetworkAccess;
                //if (connect_status == NetworkAccess.Internet)
                //{
                //status_text.TextColor = Color.Green;
                //status_text.Text = "Đang theo dõi";
                if (channel_picker.SelectedIndex != current_index)
                {
                    status_text.Text      = "";
                    temperature_text.Text = "";
                    temperature.Text      = "";
                    ph_text.Text          = "";
                    pH.Text          = "";
                    turb_text.Text   = "";
                    turb.Text        = "";
                    update_text.Text = "";
                    update_time.Text = "";
                    current_index    = channel_picker.SelectedIndex;
                }
                channel_name.Text = myprofile[channel_picker.SelectedIndex].name;
                bool Is_Exception = false;
                try
                {
                    cts.CancelAfter(2300);
                    Task <ChannelFeed> theTask = ReallyGetData(myprofile[channel_picker.SelectedIndex].id.ToString(), myprofile[channel_picker.SelectedIndex].api_keys[1].api_key, cts.Token);
                    ChannelFeed        myFeeds = await theTask;
                    status_text.TextColor = Color.Green;
                    status_text.Text      = "Đang theo dõi";
                    temperature_text.Text = myFeeds.channel.field1 + ":";
                    temperature.Text      = myFeeds.feeds[1].field1;
                    ph_text.Text          = myFeeds.channel.field2 + ":";
                    pH.Text          = myFeeds.feeds[1].field2;
                    turb_text.Text   = myFeeds.channel.field3 + ":";
                    turb.Text        = myFeeds.feeds[1].field3;
                    update_text.Text = "Cập nhật lần cuối vào:";
                    update_time.Text = myFeeds.feeds[1].created_at.ToString("dd/MM/yyyy HH:mm tt");
                }

                catch (Exception)
                {
                    Is_Exception          = true;
                    status_text.TextColor = Color.Red;
                    status_text.Text      = "Lỗi Internet";
                }

                // do something with time...
                //}
                cts = null;
                if (Is_Exception != true)
                {
                    await Task.Delay(2300);
                }
            }
        }