public async Task <IMediaCharacteristics> GetMedia(string mediaId) { IMediaCharacteristics media = null; InstaSharp.Models.Responses.OAuthResponse resp = GetOAuthResp(); InstaSharp.Models.Responses.MediaResponse m = null; var mEndPoint = new InstaSharp.Endpoints.Media(_configService.GetMediaConfig, resp); m = await mEndPoint.Get(mediaId); if (m != null && m.Data != null) { media = _mappers[MapperTypes.Media].Map <IMediaCharacteristics>(m.Data); #region Map Insta Media to Imedia if (m.Data.Attribution != null) { media.Attribution = _mappers[MapperTypes.Attribution].Map <Attribution>(m.Data.Attribution); } media.Caption = _mappers[MapperTypes.Caption].Map <Caption>(m.Data.Caption); if (m.Data.Caption != null) { media.Caption.From = _mappers[MapperTypes.UserInfo].Map <UserInfo>(m.Data.Caption.From); } media.Comments = _mappers[MapperTypes.Comments].Map <Domain.Media.Comments>(m.Data.Comments); media.Images = _mappers[MapperTypes.Image].Map <Domain.Media.Image>(m.Data.Images); media.Images.Thumbnail = _mappers[MapperTypes.Resolution].Map <Domain.Media.Resolution>(m.Data.Images.Thumbnail); media.Images.LowResolution = _mappers[MapperTypes.Resolution].Map <Domain.Media.Resolution>(m.Data.Images.LowResolution); media.Images.StandardResolution = _mappers[MapperTypes.Resolution].Map <Resolution>(m.Data.Images.StandardResolution); media.Likes = _mappers[MapperTypes.Likes].Map <Domain.Media.Likes>(m.Data.Likes); if (m.Data.Location != null) { media.Location = _mappers[MapperTypes.Location].Map <Domain.Media.Location>(m.Data.Location); } media.User = _mappers[MapperTypes.UserInfo].Map <UserInfo>(m.Data.User); if (m.Data.GetType() == typeof(List <UserInPhoto>)) /// TODO Check if this works/necesssary { foreach (var u in m.Data.UsersInPhoto) { media.UsersInPhoto.Add(_mappers[MapperTypes.UserInPhoto].Map <UserInPhoto>(u)); } } if (m.Data.Type == "video") { media.Videos = _mappers[MapperTypes.Video].Map <Video>(m.Data.Videos); media.Videos.LowResolution = _mappers[MapperTypes.Resolution].Map <Resolution>(m.Data.Videos.LowResolution); media.Videos.StandardResolution = _mappers[MapperTypes.Resolution].Map <Resolution>(m.Data.Videos.StandardResolution); } #endregion } return(media); }
public override async Task ExecuteAsync(string generator, WebHookHandlerContext context) { // Convert the incoming data to a collection of InstagramNotifications var notifications = context.GetDataOrDefault<InstagramNotificationCollection>(); // Get the config used by InstaSharp client InstagramConfig config = Dependencies.InstagramConfig; // Access media references in notifications foreach (var notification in notifications) { // If we have an access token then get the media using InstaSharp. OAuthResponse auth; if (Dependencies.Tokens.TryGetValue(notification.UserId, out auth)) { var media = new Media(config, auth); MediaResponse mediaResponse = await media.Get(notification.Data.MediaId); } } }
public async Task<ActionResult> FullInfo() { var oAuthResponse = Session["FRED.AuthInfo"] as OAuthResponse; if (oAuthResponse == null) { return RedirectToAction("Login"); } var locations = new Endpoints.Media(config, oAuthResponse); var geo = new InstaSharp.Endpoints.Geographies(config, oAuthResponse); var start = DateTime.Now - TimeSpan.FromDays(1); var end = DateTime.Now; var posts = new List<WallElement>(); return View(posts); }