private int UpdateInstagramFeeds(Instagramaccounts instagramAccount) { var databaseRepository = new DatabaseRepository(); if (instagramAccount.lastUpdate.AddHours(1) <= DateTime.UtcNow) { if (!instagramAccount.IsActive) { return(0); } UserController objusercontroller = new UserController(); var configi = new ConfigurationIns(AppSettings.instaAuthUrl, AppSettings.instaClientId, AppSettings.instaClientSecret, AppSettings.instaReturnUrl, AppSettings.instaTokenRetrivelUrl, AppSettings.instaApiBaseUrl, ""); var _api = oAuthInstagram.GetInstance(configi); ParseAndUpdateInstagramAccount(instagramAccount, objusercontroller, databaseRepository); GetParseInstagramSelfFeeds(instagramAccount.InstagramId, instagramAccount.AccessToken); GetParseInstagramUserDetails(instagramAccount.InstagramId, instagramAccount.AccessToken, instagramAccount); GetParseInstagramPostLikes(instagramAccount.InstagramId, instagramAccount.AccessToken); GetInstagramPostComments(instagramAccount.InstagramId, instagramAccount.AccessToken); GetInstagramFollowing(instagramAccount.InstagramId, instagramAccount.AccessToken); GetInstagramFollower(instagramAccount.InstagramId, instagramAccount.AccessToken); } else { apiHitsCount = 0; } return(0); }
public static string AddInstagramAccount(string client_id, string client_secret, string redirect_uri, string code, long userId, long groupId, Model.DatabaseRepository dbr, ILogger _logger, Helper.Cache _redisCache, Helper.AppSettings _appSettings) { string ret = string.Empty; oAuthInstagram objInsta = new oAuthInstagram(); ConfigurationIns configi = new ConfigurationIns("https://api.instagram.com/oauth/authorize/", client_id, client_secret, redirect_uri, "https://api.instagram.com/oauth/access_token", "https://api.instagram.com/v1/", ""); oAuthInstagram _api = new oAuthInstagram(); _api = oAuthInstagram.GetInstance(configi); AccessToken access = new AccessToken(); access = _api.AuthGetAccessToken(code); UserController objusercontroller = new UserController(); if (access != null) { Domain.Socioboard.Models.Instagramaccounts Instagramaccounts = new Domain.Socioboard.Models.Instagramaccounts(); Domain.Socioboard.Models.Instagramaccounts objInstagramAccount; #region InstagramAccount InstagramResponse <User> objuser = objusercontroller.GetUserDetails(access.user.id, access.access_token); objInstagramAccount = new Domain.Socioboard.Models.Instagramaccounts(); objInstagramAccount.AccessToken = access.access_token; objInstagramAccount.InstagramId = access.user.id; try { objInstagramAccount.bio = access.user.bio; } catch { objInstagramAccount.bio = ""; } try { objInstagramAccount.ProfileUrl = access.user.profile_picture; } catch (Exception ex) { _logger.LogError("Instagram.asmx.cs >> AddInstagramAccount >> " + ex.StackTrace); } try { objInstagramAccount.InsUserName = access.user.username; } catch (Exception ex) { _logger.LogError("Instagram.asmx.cs >> AddInstagramAccount >> " + ex.StackTrace); } try { objInstagramAccount.TotalImages = objuser.data.counts.media; } catch (Exception ex) { _logger.LogError("Instagram.asmx.cs >> AddInstagramAccount >> " + ex.StackTrace); } try { objInstagramAccount.FollowedBy = objuser.data.counts.followed_by; } catch (Exception ex) { _logger.LogError("Instagram.asmx.cs >> AddInstagramAccount >> " + ex.StackTrace); } try { objInstagramAccount.Followers = objuser.data.counts.follows; } catch (Exception ex) { _logger.LogError("Instagram.asmx.cs >> AddInstagramAccount >> " + ex.StackTrace); } objInstagramAccount.UserId = userId; objInstagramAccount.IsActive = true; objInstagramAccount.lastUpdate = DateTime.UtcNow; if (objInstagramAccount.InstagramId != null) { Instagramaccounts = Api.Socioboard.Repositories.InstagramRepository.getInstagramAccount(objInstagramAccount.InstagramId, _redisCache, dbr); if (Instagramaccounts != null && Instagramaccounts.IsActive == true) { return("This Account is added by some body else."); } } else { return("Issue while fetching instagram userId"); } if (Instagramaccounts == null) { int isSaved = dbr.Add <Domain.Socioboard.Models.Instagramaccounts>(objInstagramAccount); if (isSaved == 1) { List <Domain.Socioboard.Models.Instagramaccounts> lstinsAcc = dbr.Find <Domain.Socioboard.Models.Instagramaccounts>(t => t.InstagramId.Equals(objInstagramAccount.InstagramId)).ToList(); if (lstinsAcc != null && lstinsAcc.Count() > 0) { isSaved = GroupProfilesRepository.AddGroupProfile(groupId, lstinsAcc.First().InstagramId, lstinsAcc.First().InsUserName, userId, lstinsAcc.First().ProfileUrl, Domain.Socioboard.Enum.SocialProfileType.Instagram, dbr); if (isSaved == 1) { _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheUserProfileCount + userId); _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheGroupProfiles + groupId); GetInstagramSelfFeeds(objInstagramAccount.InstagramId, objInstagramAccount.AccessToken, _appSettings); GetInstagramUserDetails(objInstagramAccount.InstagramId, objInstagramAccount.AccessToken, _redisCache, dbr); GetInstagramFollowing(objInstagramAccount.InstagramId, objInstagramAccount.AccessToken, 1, _appSettings); GetInstagramFollower(objInstagramAccount.InstagramId, objInstagramAccount.AccessToken, 1, _appSettings); new Thread(delegate() { GetInstagramPostLikes(objInstagramAccount.InstagramId, objInstagramAccount.AccessToken, 1, _appSettings); GetInstagramPostComments(objInstagramAccount.InstagramId, objInstagramAccount.AccessToken, _appSettings); }).Start(); return("Added_Successfully"); } } } } else { objInstagramAccount.id = Instagramaccounts.id; int isSaved = dbr.Update <Domain.Socioboard.Models.Instagramaccounts>(objInstagramAccount); if (isSaved == 1) { List <Domain.Socioboard.Models.Instagramaccounts> lstinsAcc = dbr.Find <Domain.Socioboard.Models.Instagramaccounts>(t => t.InstagramId.Equals(objInstagramAccount.InstagramId)).ToList(); if (lstinsAcc != null && lstinsAcc.Count() > 0) { isSaved = GroupProfilesRepository.AddGroupProfile(groupId, lstinsAcc.First().InstagramId, lstinsAcc.First().InsUserName, userId, lstinsAcc.First().ProfileUrl, Domain.Socioboard.Enum.SocialProfileType.Instagram, dbr); if (isSaved == 1) { _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheUserProfileCount + userId); _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheGroupProfiles + groupId); //todo : codes to update feeds GetInstagramSelfFeeds(objInstagramAccount.InstagramId, objInstagramAccount.AccessToken, _appSettings); GetInstagramUserDetails(objInstagramAccount.InstagramId, objInstagramAccount.AccessToken, _redisCache, dbr); GetInstagramFollowing(objInstagramAccount.InstagramId, objInstagramAccount.AccessToken, 1, _appSettings); GetInstagramFollower(objInstagramAccount.InstagramId, objInstagramAccount.AccessToken, 1, _appSettings); new Thread(delegate() { GetInstagramPostLikes(objInstagramAccount.InstagramId, objInstagramAccount.AccessToken, 1, _appSettings); GetInstagramPostComments(objInstagramAccount.InstagramId, objInstagramAccount.AccessToken, _appSettings); }).Start(); return("Added_Successfully"); } } } } } return("issue in access token fetching"); #endregion }
public static int updateInstagramFeeds(Domain.Socioboard.Models.Instagramaccounts insAcc) { apiHitsCount = 0; DatabaseRepository dbr = new DatabaseRepository(); Domain.Socioboard.Models.Groupprofiles _grpProfile = dbr.Single <Domain.Socioboard.Models.Groupprofiles>(t => t.profileId.Contains(insAcc.InstagramId)); if (insAcc.lastUpdate.AddHours(1) <= DateTime.UtcNow) { if (insAcc.IsActive) { // Domain.Socioboard.Models.Instagramaccounts Instagramaccounts = new Domain.Socioboard.Models.Instagramaccounts(); Domain.Socioboard.Models.Instagramaccounts objInstagramAccount; UserController objusercontroller = new UserController(); ConfigurationIns configi = new ConfigurationIns("https://api.instagram.com/oauth/authorize/", "d89b5cfa3796458ebbb2520d70eeb498", "e4663d0a287243f88ac619b5692119c8", "https://www.socioboard.com/InstagramManager/Instagram", "https://api.instagram.com/oauth/access_token", "https://api.instagram.com/v1/", ""); oAuthInstagram _api = new oAuthInstagram(); _api = oAuthInstagram.GetInstance(configi); InstagramResponse <User> objuser = objusercontroller.GetUserDetails(insAcc.InstagramId, insAcc.AccessToken); // objInstagramAccount = new Domain.Socioboard.Models.Instagramaccounts(); if (objuser != null) { try { insAcc.ProfileUrl = objuser.data.profile_picture; _grpProfile.profilePic = objuser.data.profile_picture; } catch (Exception ex) { insAcc.ProfileUrl = insAcc.ProfileUrl; _grpProfile.profilePic = insAcc.ProfileUrl; } try { insAcc.TotalImages = objuser.data.counts.media; } catch (Exception ex) { insAcc.TotalImages = insAcc.TotalImages; } try { insAcc.FollowedBy = objuser.data.counts.followed_by; } catch (Exception ex) { insAcc.FollowedBy = insAcc.FollowedBy; } try { insAcc.Followers = objuser.data.counts.follows; } catch (Exception ex) { insAcc.Followers = insAcc.Followers; } try { insAcc.bio = objuser.data.bio; } catch (Exception ex) { insAcc.bio = insAcc.bio; } dbr.Update <Domain.Socioboard.Models.Groupprofiles>(_grpProfile); dbr.Update <Domain.Socioboard.Models.Instagramaccounts>(insAcc); } while (apiHitsCount < MaxapiHitsCount) { try { GetInstagramSelfFeeds(insAcc.InstagramId, insAcc.AccessToken); } catch { } try { GetInstagramUserDetails(insAcc.InstagramId, insAcc.AccessToken, insAcc); } catch { } try { GetInstagramPostLikes(insAcc.InstagramId, insAcc.AccessToken); } catch { } try { GetInstagramPostComments(insAcc.InstagramId, insAcc.AccessToken); } catch { } try { GetInstagramFollowing(insAcc.InstagramId, insAcc.AccessToken, 1); } catch { } try { GetInstagramFollower(insAcc.InstagramId, insAcc.AccessToken, 1); } catch { } } insAcc.lastUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.Instagramaccounts>(insAcc); } } else { apiHitsCount = 0; } return(0); }