コード例 #1
0
        public static SocialImage ReturnSocialImage(InstagramMedia item)
        {
            SocialImage s = new SocialImage();

            s.Image      = item.Images.StandardResolution.Url;
            s.Date       = item.Created;
            s.Caption    = item.CaptionText;
            s.SocialLink = item.Link;
            return(s);
        }
コード例 #2
0
        public bool LikeToggle(string mediaid, string userid, string accessToken)
        {
            InstagramMedia media = MediaDetails(mediaid, accessToken).data;

            if (media.user_has_liked)
            {
                return(LikeDelete(mediaid, userid, accessToken));
            }
            else
            {
                return(LikeAdd(mediaid, userid, accessToken));
            }
        }
コード例 #3
0
        private Post MapInstagramMedia(InstagramMedia reader)
        {
            Post post = new Post()
            {
                Id        = reader.Id,
                Username  = reader.Username,
                Text      = reader.Caption,
                Timestamp = DataReaderUtils.GetDateTime(reader.Timestamp),
                Likes     = DataReaderUtils.GetInt(reader.Like_count)
            };

            return(post);
        }
コード例 #4
0
        /// <summary>
        /// Like or Unlike the Media
        /// </summary>
        /// <param name="mediaid"></param>
        /// <param name="userid"></param>
        /// <param name="accessToken"></param>
        /// <returns></returns>
        public bool LikeToggle(string mediaid, string userid, string accessToken)
        {
            Media          objMedia = new Media();
            InstagramMedia media    = objMedia.MediaDetails(mediaid, accessToken).data;

            if (media.user_has_liked)
            {
                return(DeleteLike(mediaid, accessToken));
            }
            else
            {
                return(PostUserLike(mediaid, accessToken));
            }
        }
コード例 #5
0
        /// <summary>
        /// Gets an instance of <var>InstagramMediaResponse</var> from
        /// the specified <var>JsonObject</var>.
        /// </summary>
        /// <param name="obj">The instance of <var>JsonObject</var> to parse.</param>
        public static InstagramMediaResponse Parse(JsonObject obj)
        {
            // Check if null
            if (obj == null)
            {
                return(null);
            }

            // Validate the response
            ValidateResponse(obj);

            // Parse the response
            return(new InstagramMediaResponse {
                JsonObject = obj,
                Data = InstagramMedia.Parse(obj.GetObject("data"))
            });
        }
コード例 #6
0
        /// <summary>
        /// Gets an instance of <var>InstagramRecentMediaResponse</var> from
        /// the specified <var>JsonObject</var>.
        /// </summary>
        /// <param name="obj">The instance of <var>JsonObject</var> to parse.</param>
        public static InstagramRecentMediaResponse Parse(JsonObject obj)
        {
            // Check if null
            if (obj == null)
            {
                return(null);
            }

            // Validate the response
            ValidateResponse(obj);

            // Get the "paging" object
            JsonObject pagination = obj.GetObject("pagination");

            // Parse the response
            return(new InstagramRecentMediaResponse {
                JsonObject = obj,
                NextUrl = pagination == null ? null : pagination.GetString("next_url"),
                NextMaxId = pagination == null ? null : pagination.GetString("next_max_id"),
                Data = InstagramMedia.ParseMultiple(obj.GetArray("data"))
            });
        }
コード例 #7
0
        public override async Task ExecuteAsync(string generator, WebHookHandlerContext context)
        {
            // Get the WebHook client
            InstagramWebHookClient client = Dependencies.Client;

            // Convert the incoming data to a collection of InstagramNotifications
            var notifications = context.GetDataOrDefault <InstagramNotificationCollection>();

            foreach (var notification in notifications)
            {
                // Use WebHook client to get detailed information about the posted media
                JArray entries = await client.GetRecentGeoMedia(context.Id, notification.ObjectId);

                foreach (JToken entry in entries)
                {
                    InstagramPost post = entry.ToObject <InstagramPost>();

                    // Image information
                    if (post.Images != null)
                    {
                        InstagramMedia thumbnail = post.Images.Thumbnail;
                        InstagramMedia lowRes    = post.Images.LowResolution;
                        InstagramMedia stdRes    = post.Images.StandardResolution;
                    }

                    // Video information
                    if (post.Videos != null)
                    {
                        InstagramMedia lowBandwidth = post.Videos.LowBandwidth;
                        InstagramMedia lowRes       = post.Videos.LowResolution;
                        InstagramMedia stdRes       = post.Videos.StandardResolution;
                    }

                    // Get direct links and sizes of media
                    Uri link = post.Link;
                }
            }
        }
コード例 #8
0
        public static async Task SaveCredentials(string userName = null, string password = null, Member member = null, FacebookUser fbUser = null, InstagramUser instagramUser = null, InstagramMedia instagramMedia = null, string userType = null)
        {
            var isExist = await CredentialsService.DoCredentialsExist();

            if (isExist && instagramMedia != null)
            {
                var account = await CredentialsService.GetAccount();

                var data = JsonConvert.SerializeObject(instagramMedia);
                account.Properties.Add("InstgramMedia", data);
                //AccountStore.Create().Save(account, "Fitness");
                await SaveAsync(account, "Fitness");
            }
            else
            {
                if (!string.IsNullOrWhiteSpace(userName) && !string.IsNullOrWhiteSpace(password))
                {
                    Account account = new Account
                    {
                        Username = userName,
                    };
                    account.Properties.Add("Password", password);
                    account.Properties.Add("UserType", userType);
                    var data = JsonConvert.SerializeObject(member);
                    account.Properties.Add("Member", data);

                    if (fbUser != null)
                    {
                        var fbData = JsonConvert.SerializeObject(fbUser);
                        account.Properties.Add("FacebookUser", fbData);
                    }

                    if (instagramUser != null)
                    {
                        var instData = JsonConvert.SerializeObject(instagramUser);
                        account.Properties.Add("InstagramUser", instData);
                    }

                    if (instagramMedia != null)
                    {
                        var mediaData = JsonConvert.SerializeObject(instagramMedia);
                        account.Properties.Add("InstgramMedia", mediaData);
                    }

                    await SaveAsync(account, "Fitness");
                }
            }
        }
コード例 #9
0
ファイル: InstagramClient.cs プロジェクト: bryn500/Queenwood
        public async Task <List <InstagramMedia> > GetRecentMedia()
        {
            return(await _cacheService.GetAsync("GetRecentInstagramMedia", async() =>
            {
                NameValueCollection queryString = HttpUtility.ParseQueryString(string.Empty);
                queryString.Add("access_token", _instagramConfig.AccessToken);

                // Get instagram images
                var instagramResults = await GetAsync <GetRecentMediaResponse>(_instagramConfig.BaseUrl, $"/v1/users/self/media/recent/?{queryString}");

                List <InstagramMedia> items = null;

                if (instagramResults != null)
                {
                    items = new List <InstagramMedia>();

                    foreach (var result in instagramResults.Data.Data)
                    {
                        if (result.Images != null)
                        {
                            var media = new InstagramMedia
                            {
                                DefaultImage = new ImageLink(
                                    result.Images.StandardResolution.Url,
                                    result.Images.StandardResolution.Width,
                                    result.Images.StandardResolution.Height,
                                    result.Link, "")
                                {
                                    LowRes = result.Images.LowResolution.Url,
                                    LinkText = result.Caption?.Text
                                }
                            };

                            if (result.CarouselMedia != null && result.CarouselMedia.Any())
                            {
                                // album
                                media.Album = result.CarouselMedia.Where(x => x.Images != null)
                                              .Select(x => new Image(
                                                          x.Images.StandardResolution.Url,
                                                          x.Images.StandardResolution.Width,
                                                          x.Images.StandardResolution.Height)
                                {
                                    LowRes = x.Images.LowResolution.Url
                                })
                                              .ToList();
                            }

                            items.Add(media);
                        }
                    }

                    // Remove Hashtags and ..... from instagram comments
                    foreach (var p in items)
                    {
                        if (string.IsNullOrEmpty(p.DefaultImage.LinkText))
                        {
                            continue;
                        }

                        // Manage text
                        p.DefaultImage.LinkText = RemoveInstagramQuirksFromString(p.DefaultImage.LinkText);
                        p.DefaultImage.LinkText = Utilities.ReduceMultipleSpaces(p.DefaultImage.LinkText);
                        p.DefaultImage.LinkText = RemoveHashTagFromString(p.DefaultImage.LinkText);
                    }
                }

                return items;
            }, 1440).Unwrap());
        }
コード例 #10
0
        public bool LikeToggle(string mediaid, string userid, string accessToken)
        {
            InstagramMedia media = MediaDetails(mediaid, accessToken).Data;

            return(media.UserHasLiked ? LikeDelete(mediaid, userid, accessToken) : LikeAdd(mediaid, userid, accessToken));
        }