public ApiResponse SaveToken(string id, [FromBody] string uid, [FromBody] string token) { ApiResponse response = new ApiResponse(); if (string.IsNullOrWhiteSpace(uid)) { response.msg = "UserIid required"; return(response); } if (string.IsNullOrWhiteSpace(token)) { response.msg = "Token required"; return(response); } var agent = _agentService.GetById(id); try { agent.ext_id = uid; agent.facebook_access_token = _facebookService.GetLonglivedToken(_appSettings.Value.ClientId, _appSettings.Value.ClientSecret, token) ?? token; response.data = _agentService.Create(agent); response.ok = true; } catch (Exception ex) { response.ok = false; response.msg = ex.Message; throw ex; } return(response); }
public string CreateChannel(string type, string business_id, [FromForm] string page_id, [FromForm] string page_name, [FromForm] string token) { try { var list = _channelService.GetChannelsByExtId(page_id).Result.Where(b => b.active).ToList(); if (list == null || list.Count == 0) { string longLivedToken = _facebookService.GetLonglivedToken(_appSettings.Value.ClientId, _appSettings.Value.ClientSecret, token); page_name = Core.Helpers.CommonHelper.EnsureMaximumLength(page_name, 200); Channel data = new Channel { id = ChannelService.FormatId(business_id, page_id), business_id = business_id, ext_id = page_id, name = string.IsNullOrWhiteSpace(page_name) ? type + page_id : page_name, active = true, type = type, token = string.IsNullOrWhiteSpace(longLivedToken) ? token : longLivedToken }; var resultData = _channelService.Create(data); _facebookService.SubscribeToAppWebhook(page_id, data.token); } else { var data = list[0]; var url = string.Format("https://graph.facebook.com/v2.8/oauth/access_token?grant_type=fb_exchange_token&client_id={0}&client_secret={1}&fb_exchange_token={2}", _appSettings.Value.ClientId, _appSettings.Value.ClientSecret, token); string longLivedToken = ""; try { longLivedToken = Core.Helpers.WebHelper.HttpGetAsync <dynamic>(url).Result.access_token; } catch (Exception ex) { _logService.Create(new Log { message = ex.Message, category = "Channels", name = "Get long lived token", link = url }); } _facebookService.SubscribeToAppWebhook(data.ext_id, data.token); data.name = page_name ?? data.type + "-" + data.ext_id; data.token = longLivedToken ?? token; return(_channelService.Create(data)); // throw new Exception("Channel already added"); } } catch (Exception ex) { _logService.Create(new Log { category = "Channels", link = $"{Request.HttpContext.Request.Scheme}://{Request.HttpContext.Request.Host}{Request.HttpContext.Request.Path}{Request.HttpContext.Request.QueryString}", message = ex.Message, details = ex.StackTrace, name = string.Format("Create channel for facebook page-{0} of business-{1} use token={2}", page_id, business_id, token) }); throw ex; } return(page_id); }