public IResult <EdgeHashtagToMedia> GetHashtagMedias(string hashtag, string endCursor, int limitPerPage = 12) { try { var uri = string.Format(InstagramGraphApiConstants.EXPLORE_TAG_DATA, hashtag, limitPerPage, endCursor); var variables = string.Format("{0}:{{\"tag_name\":\"{1}\",\"show_ranked\":false,\"first\":{2},\"after\":\"{3}\"}}", _user.UserRhxGis, hashtag, limitPerPage, endCursor); var signature = ApplicationHelper.CreateMD5(variables); var request = HttpHelper.GetDefaultRequest(uri); request.Headers["X-Instagram-GIS"] = signature; request.Headers["Cookie"] = _user.UserCookie; var response = HttpHelper.GetDefaultResponse(request); var json = response.ReadAsString(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <EdgeHashtagToMedia>(response, json)); } var objRetorno = JsonConvert.DeserializeObject <HashtagMedias>(json); EdgeHashtagToMedia EdgeHashtagToMedia = GetEdgeHashtagToMedia(objRetorno.Data.Hashtag); return(Result.Success(EdgeHashtagToMedia)); } catch (Exception ex) { return(Result.Fail <EdgeHashtagToMedia>(ex.Message)); } }
public IResult <EdgeFollowingHashtag> GetUserHashtagFollowing(string userId) { try { var uriInit = string.Format(InstagramCustomApiConstants.USER_FOLLOWING_HASHTAG, userId); var variablesInit = string.Format("{0}:{{\"id\":\"{1}\"}}", _user.UserRhxGis, userId); var signatureInit = ApplicationHelper.CreateMD5(variablesInit); var request = HttpHelper.GetDefaultRequest(uriInit); request.Headers["X-Instagram-GIS"] = signatureInit; request.Headers["Cookie"] = _user.UserCookie; var response = HttpHelper.GetDefaultResponse(request); var json = response.ReadAsString(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <EdgeFollowingHashtag>(response, json)); } var objRetorno = JsonConvert.DeserializeObject <UserMedias>(json); var hashtags = objRetorno.Data.User.EdgeFollowingHashtag; return(Result.Success(hashtags)); } catch (Exception ex) { return(Result.Fail <EdgeFollowingHashtag>(ex.Message)); } }
public IResult <ShortcodeHashtagMedia> GetShortcodeHashtagMedia(string shortcode) { try { var uri = string.Format(InstagramGraphApiConstants.EXPLORE_TAG_SHORTCODE_DATA, shortcode); var variables = string.Format("{0}:{{\"shortcode\":\"{1}\",\"child_comment_count\":10,\"fetch_comment_count\":40,\"parent_comment_count\":24,\"has_threaded_comments\":true }}", _user.UserRhxGis, shortcode); var signature = ApplicationHelper.CreateMD5(variables); var request = HttpHelper.GetDefaultRequest(uri); request.Headers["X-Instagram-GIS"] = signature; request.Headers["Cookie"] = _user.UserCookie; var response = HttpHelper.GetDefaultResponse(request); var json = response.ReadAsString(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <ShortcodeHashtagMedia>(response, json)); } var objRetorno = JsonConvert.DeserializeObject <ShortcodeHashtagMediaData>(json); var medias = objRetorno.Data; return(Result.Success(medias)); } catch (Exception ex) { return(Result.Fail <ShortcodeHashtagMedia>(ex.Message)); } }
public IResult <DataStoryMedia> GetFeaturedStoriesByHighlightReelIds(string[] highlight_reel_ids) { try { var uri = string.Format(InstagramCustomApiConstants.DESTAQUES_DATA_STORIES_BY_USER_ID, GetFormattedHighlightReelIds(highlight_reel_ids)); var variables = string.Format("{0}:{{ \"reel_ids\":[],\"tag_names\":[],\"location_ids\":[],\"highlight_reel_ids\":[{0}],\"precomposed_overlay\":false,\"show_story_viewer_list\":true,\"story_viewer_fetch_count\":50,\"story_viewer_cursor\":\"\"}}", highlight_reel_ids); var signature = ApplicationHelper.CreateMD5(variables); var request = HttpHelper.GetDefaultRequest(uri); request.Headers["X-Instagram-GIS"] = signature; request.Headers["Cookie"] = _user.UserCookie; var response = HttpHelper.GetDefaultResponse(request); var json = response.ReadAsString(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <DataStoryMedia>(response, json)); } var objRetorno = JsonConvert.DeserializeObject <StoryMedias>(json); var recents_user_stories = objRetorno.Data; return(Result.Success(recents_user_stories)); } catch (Exception ex) { return(Result.Fail <DataStoryMedia>(ex.Message)); } }
public IResult <EdgeOwnerToTimelineMedia> GetUserMedias(string userid, string endCursor, int limitPerPage = 12) { try { var uri = string.Format(InstagramCustomApiConstants.USER_TIMELINE_URL, userid, limitPerPage, endCursor); var variables = string.Format("{0}:{{\"id\":\"{1}\",\"first\":{2},\"after\":\"{3}\"}}", _user.UserRhxGis, userid, limitPerPage, endCursor); var signature = ApplicationHelper.CreateMD5(variables); var request = HttpHelper.GetDefaultRequest(uri); request.Headers["X-Instagram-GIS"] = signature; request.Headers["Cookie"] = _user.UserCookie; var response = HttpHelper.GetDefaultResponse(request); var json = response.ReadAsString(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <EdgeOwnerToTimelineMedia>(response, json)); } var objRetorno = JsonConvert.DeserializeObject <UserMedias>(json); var medias = objRetorno.Data.User.EdgeOwnerToTimelineMedia; return(Result.Success(medias)); } catch (Exception ex) { return(Result.Fail <EdgeOwnerToTimelineMedia>(ex.Message)); } }
public IResult <User> GetWebDiscoverMedia(int limitPerPage = 24, int endCursor = 0) { try { var uri = string.Format(InstagramCustomApiConstants.DISCOVER_MEDIAS_URL, limitPerPage, endCursor); var variables = string.Format("{0}:{{\"first\":{1},\"after\":\"{2}\"}}", _user.UserRhxGis, limitPerPage, endCursor); var signature = ApplicationHelper.CreateMD5(variables); var request = HttpHelper.GetDefaultRequest(uri); request.Headers["X-Instagram-GIS"] = signature; request.Headers["Cookie"] = _user.UserCookie; var response = HttpHelper.GetDefaultResponse(request); var json = response.ReadAsString(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <User>(response, json)); } var objRetorno = JsonConvert.DeserializeObject <UserMedias>(json); var medias = objRetorno.Data.User; return(Result.Success(medias)); } catch (Exception ex) { return(Result.Fail <User>(ex.Message)); } }
public IResult <EdgeMediaToParentComment> GetMediaComments(string shortcode, string endCursor, int limitPerPage = 12) { try { DeserializedEndCursor DeserializedEndCursor = new DeserializedEndCursor(); DeserializedEndCursor = JsonConvert.DeserializeObject <DeserializedEndCursor>(endCursor); string uri = string.Format(InstagramGraphApiConstants.MEDIA_COMMENTS_URL, shortcode, limitPerPage, DeserializedEndCursor.cached_comments_cursor, HttpUtility.UrlEncode(DeserializedEndCursor.bifilter_token)); var variables = string.Format("{{\"shortcode\":\"{0}\", \"first\":{1}, \"after\":\"{{ \"cached_comments_cursor\": \"{2}\", \"bifilter_token\": \"{3}\" }}\"}}", shortcode, limitPerPage, DeserializedEndCursor.cached_comments_cursor, DeserializedEndCursor.bifilter_token); var signature = ApplicationHelper.CreateMD5(variables); var request = HttpHelper.GetDefaultRequest(uri); request.Headers["X-Instagram-GIS"] = signature; request.Headers["Cookie"] = _user.UserCookie; var response = HttpHelper.GetDefaultResponse(request); var json = response.ReadAsString(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <EdgeMediaToParentComment>(response, json)); } var objRetorno = JsonConvert.DeserializeObject <ShortcodeData>(json); return(Result.Success <EdgeMediaToParentComment>(objRetorno.Data.ShortcodeMedia.EdgeMediaToParentComment)); } catch (Exception ex) { return(Result.Fail <EdgeMediaToParentComment>(ex.Message)); } }
public IResult <ShortcodeMedia> GetMediaInfoData(string shortcode) { try { string uri = string.Format(InstagramCustomApiConstants.MEDIA_INFO_URL, shortcode); var variables = string.Format("{0}:{{\"shortcode\":\"{1}\",\"child_comment_count\":10,\"fetch_comment_count\":40,\"parent_comment_count\":40,\"has_threaded_comments\":true}}", _user.UserRhxGis, shortcode); var signature = ApplicationHelper.CreateMD5(variables); var request = HttpHelper.GetDefaultRequest(uri); request.Headers["X-Instagram-GIS"] = signature; request.Headers["Cookie"] = _user.UserCookie; var response = HttpHelper.GetDefaultResponse(request); var json = response.ReadAsString(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <ShortcodeMedia>(response, json)); } var objRetorno = JsonConvert.DeserializeObject <ShortcodeData>(json); return(Result.Success <ShortcodeMedia>(objRetorno.Data.ShortcodeMedia)); } catch (Exception ex) { return(Result.Fail <ShortcodeMedia>(ex.Message)); } }
public IResult <EdgeWebFeedTimeline> GetUserTimelineMedias(string endCursor = null) { try { var uri = ""; var variables = ""; var signature = ""; HttpWebRequest request = null; if (String.IsNullOrEmpty(endCursor)) { uri = InstagramCustomApiConstants.USER_TIMELINE_MEDIAS_INIT; request = HttpHelper.GetDefaultRequest(uri); request.Headers["Cookie"] = _user.UserCookie; } else { uri = string.Format(InstagramCustomApiConstants.USER_TIMELINE_MEDIAS, endCursor); variables = string.Format("{0}:{{\"cached_feed_item_ids\":[],\"fetch_media_item_count\":12,\"fetch_media_item_cursor\":\"{0}\",\"fetch_comment_count\":4,\"fetch_like\":3,\"has_stories\":false,\"has_threaded_comments\":true}}", _user.UserRhxGis, endCursor); signature = ApplicationHelper.CreateMD5(variables); request = HttpHelper.GetDefaultRequest(uri); request.Headers["Cookie"] = _user.UserCookie; request.Headers["X-Instagram-GIS"] = signature; } var response = HttpHelper.GetDefaultResponse(request); var json = response.ReadAsString(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <EdgeWebFeedTimeline>(response, json)); } var objRetorno = JsonConvert.DeserializeObject <UserMedias>(json); var medias = objRetorno.Data.User.EdgeWebFeedTimeline; return(Result.Success(medias)); } catch (Exception ex) { return(Result.Fail <EdgeWebFeedTimeline>(ex.Message)); } }
public IResult <ShortcodeMediaLikes> GetMediaLikes(string shortcode, string endCursor = null, int limitPerPage = 24) { try { string uri = string.Empty; string variables = string.Empty; if (endCursor == null) { uri = string.Format(InstagramCustomApiConstants.MEDIA_LIKES_INIT, shortcode, limitPerPage); variables = string.Format("{0}:{{\"shortcode\":\"{1}\",\"include_reel\":true,\"first\":{2} }}", _user.UserRhxGis, shortcode, limitPerPage); } else { uri = string.Format(InstagramCustomApiConstants.MEDIA_LIKES_URL, shortcode, limitPerPage, endCursor); variables = string.Format("{0}:{{\"shortcode\":\"{1}\",\"include_reel\":true,\"first\":{2},\"after\":\"{3}\"}}", _user.UserRhxGis, shortcode, limitPerPage, endCursor); } var signature = ApplicationHelper.CreateMD5(variables); var request = HttpHelper.GetDefaultRequest(uri); request.Headers["X-Instagram-GIS"] = signature; request.Headers["Cookie"] = _user.UserCookie; var response = HttpHelper.GetDefaultResponse(request); var json = response.ReadAsString(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <ShortcodeMediaLikes>(response, json)); } var objRetorno = JsonConvert.DeserializeObject <ShortcodeMediaLikesData>(json); return(Result.Success(objRetorno.Data)); } catch (Exception ex) { return(Result.Fail <ShortcodeMediaLikes>(ex.Message)); } }
public IResult <Comment> GetLikesFromComment(string comment_id, string endCursor = null, int limitPerPage = 48) { try { string uri = string.Empty; string variable = string.Empty; if (String.IsNullOrEmpty(endCursor)) { uri = string.Format(InstagramGraphApiConstants.LIKES_FROM_COMMENT_INIT, comment_id, limitPerPage); variable = string.Format("{{\"comment_id\":\"{0}\",\"first\":{1}}}", comment_id, limitPerPage); } else { uri = string.Format(InstagramGraphApiConstants.LIKES_FROM_COMMENT_URL, comment_id, limitPerPage, endCursor); variable = string.Format("{{\"comment_id\":\"{0}\",\"first\":{1},\"after\":\"{2}\"}}", comment_id, limitPerPage, endCursor); } var signature = ApplicationHelper.CreateMD5(variable); var request = HttpHelper.GetDefaultRequest(uri); request.Headers["X-Instagram-GIS"] = signature; request.Headers["Cookie"] = _user.UserCookie; var response = HttpHelper.GetDefaultResponse(request); var json = response.ReadAsString(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <Comment>(response, json)); } var objRetorno = JsonConvert.DeserializeObject <CommentData>(json); return(Result.Success <Comment>(objRetorno.Data.Comment)); } catch (Exception ex) { return(Result.Fail <Comment>(ex.Message)); } }
private IResult <EdgeUserToPhotosOfYou> GetTaggedMediasInit(string userId, int limitPerPage) { try { var uriInit = string.Format(InstagramCustomApiConstants.USER_TO_PHOTOS_OF_YOU_INIT, userId, limitPerPage); var variablesInit = string.Format("{0}:{{\"id\":\"{1}\",\"first\":{2} }}", _user.UserRhxGis, userId, limitPerPage); var signatureInit = ApplicationHelper.CreateMD5(variablesInit); var request = HttpHelper.GetDefaultRequest(uriInit); request.Headers["X-Instagram-GIS"] = signatureInit; request.Headers["Cookie"] = _user.UserCookie; var response = HttpHelper.GetDefaultResponse(request); var json = response.ReadAsString(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <EdgeUserToPhotosOfYou>(response, json)); } var objRetorno = JsonConvert.DeserializeObject <UserMedias>(json); var medias = objRetorno.Data.User.EdgeUserToPhotosOfYou; string endCursorMedias = objRetorno.Data.User.EdgeUserToPhotosOfYou.PageInfo.EndCursor; if (medias.PageInfo.HasNextPage) { bool has_next_page = true; do { var uriMedias = string.Format(InstagramCustomApiConstants.USER_TO_PHOTOS_OF_YOU, userId, limitPerPage, endCursorMedias); var variablesMedias = string.Format("{0}:{{\"id\":\"{1}\",\"first\":{2},\"after\":\"{3}\"}}", _user.UserRhxGis, userId, limitPerPage, endCursorMedias); var signatureMedias = ApplicationHelper.CreateMD5(variablesMedias); var requestMedias = HttpHelper.GetDefaultRequest(uriMedias); requestMedias.Headers["X-Instagram-GIS"] = signatureMedias; requestMedias.Headers["Cookie"] = _user.UserCookie; var responseMedias = HttpHelper.GetDefaultResponse(requestMedias); var jsonMedias = responseMedias.ReadAsString(); if (responseMedias.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <EdgeUserToPhotosOfYou>(responseMedias, jsonMedias)); } var objRetornoMedias = JsonConvert.DeserializeObject <UserMedias>(jsonMedias); objRetornoMedias.Data.User.EdgeUserToPhotosOfYou.Edges.ForEach(c => medias.Edges.Add(c)); has_next_page = objRetornoMedias.Data.User.EdgeUserToPhotosOfYou.PageInfo.HasNextPage; endCursorMedias = objRetornoMedias.Data.User.EdgeUserToPhotosOfYou.PageInfo.EndCursor; } while (has_next_page); } return(Result.Success(medias)); } catch (Exception ex) { return(Result.Fail <EdgeUserToPhotosOfYou>(ex.Message)); } }
private IResult <EdgeSavedMedia> GetSavedUserMediasInit(string username, int limitPerPage) { try { EdgeSavedMedia _EdgeSavedMedia = new EdgeSavedMedia(); _EdgeSavedMedia.Edges = new List <EdgeSavedMediaEdges>(); var user = GetUser(username).Data; _EdgeSavedMedia.Edges = user.EdgeSavedMedia.Edges; var userId = user.Id; var endCursor = user.EdgeSavedMedia.PageInfo.EndCursor; var uri = string.Format(InstagramCustomApiConstants.USER_SAVED_MEDIAS_URL, userId, limitPerPage, endCursor); var variables = string.Format("{0}:{{\"id\":\"{1}\",\"first\":{2},\"after\":\"{3}\"}}", _user.UserRhxGis, userId, limitPerPage, endCursor); var signature = ApplicationHelper.CreateMD5(variables); var request = HttpHelper.GetDefaultRequest(uri); request.Headers["X-Instagram-GIS"] = signature; request.Headers["Cookie"] = _user.UserCookie; var response = HttpHelper.GetDefaultResponse(request); var json = response.ReadAsString(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <EdgeSavedMedia>(response, json)); } var objRetorno = JsonConvert.DeserializeObject <UserMedias>(json); var medias = objRetorno.Data.User.EdgeSavedMedia; string endCursorMedias = objRetorno.Data.User.EdgeSavedMedia.PageInfo.EndCursor; if (medias.PageInfo.HasNextPage) { bool has_next_page = true; do { var uriMedias = string.Format(InstagramCustomApiConstants.USER_SAVED_MEDIAS_URL, userId, limitPerPage, endCursorMedias); var variablesMedias = string.Format("{0}:{{\"id\":\"{1}\",\"first\":{2},\"after\":\"{3}\"}}", _user.UserRhxGis, userId, limitPerPage, endCursorMedias); var signatureMedias = ApplicationHelper.CreateMD5(variablesMedias); var requestMedias = HttpHelper.GetDefaultRequest(uriMedias); requestMedias.Headers["X-Instagram-GIS"] = signatureMedias; requestMedias.Headers["Cookie"] = _user.UserCookie; var responseMedias = HttpHelper.GetDefaultResponse(requestMedias); var jsonMedias = responseMedias.ReadAsString(); if (responseMedias.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <EdgeSavedMedia>(responseMedias, jsonMedias)); } var objRetornoMedias = JsonConvert.DeserializeObject <UserMedias>(jsonMedias); objRetornoMedias.Data.User.EdgeSavedMedia.Edges.ForEach(c => medias.Edges.Add(c)); has_next_page = objRetornoMedias.Data.User.EdgeSavedMedia.PageInfo.HasNextPage; endCursorMedias = objRetornoMedias.Data.User.EdgeSavedMedia.PageInfo.EndCursor; } while (has_next_page); } medias.Edges.ForEach(c => _EdgeSavedMedia.Edges.Add(c)); return(Result.Success(_EdgeSavedMedia)); } catch (Exception ex) { return(Result.Fail <EdgeSavedMedia>(ex.Message)); } }
public IResult <EdgeFollow> GetUserFollowing(string userId, int limitPerPage = 12) { try { var uriInit = string.Format(InstagramCustomApiConstants.USER_FOLLOWING_INIT, userId, limitPerPage); var variablesInit = string.Format("{0}:{{\"id\":\"{1}\",\"first\":{2} }}", _user.UserRhxGis, userId, limitPerPage); var signatureInit = ApplicationHelper.CreateMD5(variablesInit); var request = HttpHelper.GetDefaultRequest(uriInit); request.Headers["X-Instagram-GIS"] = signatureInit; request.Headers["Cookie"] = _user.UserCookie; var response = HttpHelper.GetDefaultResponse(request); var json = response.ReadAsString(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <EdgeFollow>(response, json)); } var objRetorno = JsonConvert.DeserializeObject <UserMedias>(json); var following = objRetorno.Data.User.EdgeFollow; string endCursorFollowing = objRetorno.Data.User.EdgeFollow.PageInfo.EndCursor; if (following.PageInfo.HasNextPage) { bool has_next_page = true; do { var uri = string.Format(InstagramCustomApiConstants.USER_FOLLOWING, userId, limitPerPage, endCursorFollowing); var variablesMedias = string.Format("{0}:{{\"id\":\"{1}\",\"first\":{2},\"after\":\"{3}\"}}", _user.UserRhxGis, userId, limitPerPage, endCursorFollowing); var signatureMedias = ApplicationHelper.CreateMD5(variablesMedias); var requestMedias = HttpHelper.GetDefaultRequest(uri); requestMedias.Headers["X-Instagram-GIS"] = signatureMedias; requestMedias.Headers["Cookie"] = _user.UserCookie; var responseFollowers = HttpHelper.GetDefaultResponse(requestMedias); var jsonFollowers = responseFollowers.ReadAsString(); if (responseFollowers.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <EdgeFollow>(responseFollowers, jsonFollowers)); } var objRetornoFollowing = JsonConvert.DeserializeObject <UserMedias>(jsonFollowers); objRetornoFollowing.Data.User.EdgeFollow.Edges.ForEach(c => following.Edges.Add(c)); has_next_page = objRetornoFollowing.Data.User.EdgeFollow.PageInfo.HasNextPage; endCursorFollowing = objRetornoFollowing.Data.User.EdgeFollow.PageInfo.EndCursor; } while (has_next_page); } return(Result.Success(following)); } catch (Exception ex) { return(Result.Fail <EdgeFollow>(ex.Message)); } }