public FBPageAccessToken IncrementExpiredToken(SocialConfig socialConfig, string currentToken) { FBPageAccessToken model = null; try { var url = string.Format("{0}/oauth/access_token?field=expires_in&grant_type=fb_exchange_token&client_id={1}&client_secret={2}&fb_exchange_token={3}" , SqlDAL.Instance.GetSetting("FBUrlApi").Value , socialConfig.AppId, socialConfig.AppSecret, currentToken); model = HttpExtension.Instance.InvokeGet <FBPageAccessToken>(url).Result; } catch (Exception ex) { CoreLogger.Instance.Error(this.CreateMessageLog(ex.Message)); } return(model); }
private FBPageAccessToken GetFBPageAccessToken(SocialConfig socialConfig, string pageId) { FBPageAccessToken model = null; try { var fbAccess = GetFBAccessToken(socialConfig); if (fbAccess != null) { var url = $"{FBUrlApi}/{pageId}?fields=access_token&access_token={fbAccess.access_token}"; model = HttpExtension.Instance.InvokeGet <FBPageAccessToken>(url).Result; } } catch (Exception ex) { CoreLogger.Instance.Error(this.CreateMessageLog(ex.Message)); } return(model); }
public FBPageInfo GetPageId(FBPageAccessToken fBPageAccessToken) { FBPageInfo model = null; try { var url = string.Format("{0}/me/accounts?access_token={1}" , SqlDAL.Instance.GetSetting("FBUrlApi").Value , fBPageAccessToken.access_token); var temp = HttpExtension.Instance.InvokeGet <ListFBPageInfo>(url).Result; if (temp != null && temp.data?.Count > 0) { model = temp.data.FirstOrDefault(); } } catch (Exception ex) { CoreLogger.Instance.Error(this.CreateMessageLog(ex.Message)); } return(model); }
public JsonResult ProccessCallBack(FBPageAccessToken model) { try { model.ConvertFanpageConfigFilter(); if (model.FanpageConfigFilter != null) { var socialConfig = socialConfigBusiness.GetSocialConfig(new FilterSocialConfig { Id = model.FanpageConfigFilter.SocialConfigId }); //increment expired token var pageToken = facebookBusiness.IncrementExpiredToken(socialConfig, model.access_token); if (pageToken != null) { //Get PageID var pageInfo = facebookBusiness.GetPageId(pageToken); if (pageInfo != null) { FanpageConfig modelReturn = new FanpageConfig { PageTitle = pageInfo.name, PageId = pageInfo.id, PageAccessToken = pageInfo.access_token }; hubContext.Clients.Client(model.FanpageConfigFilter.ConnectionId).SendAsync("SendMessage", modelReturn); } } } } catch (Exception ex) { CoreLogger.Instance.Error(this.CreateMessageLog(ex.Message)); } return(Json(null)); }