private static FacebookLikes ConvertToFacebookLikes(dynamic d)
        {
            FacebookLikes flike = new FacebookLikes();

            try
            {
                if (d.data != null)
                {
                    for (int i = 0; i < d.data.Count; i++)
                    {
                        string id = d.data[i].id.ToString() ?? string.Empty;

                        flike.Likes.Add(new Like()
                        {
                            Category = d.data[i].category.ToString() ?? string.Empty,
                            Id       = d.data[i].id.ToString() ?? string.Empty,
                            Label    = d.data[i].name.ToString() ?? string.Empty
                        });
                    }
                }

                if (d.paging != null && d.paging.next != null)
                {
                    flike.Next = d.paging.next.ToString();
                }
            }
            catch (Exception e)
            {
                Logger.Current.Error("SocialGraph.ConvertToFacebookSocialGraph", "Could not convert dynamic object to FacebookLikes", e);
            }

            return(flike);
        }
        public static FacebookOAuthResult <FacebookLikes> GetAllUserLikes(string facebookId, string accessToken)
        {
            FacebookOAuthResult <FacebookLikes> result = new FacebookOAuthResult <FacebookLikes>();

            result.Data = new FacebookLikes();
            IStopwatch watch = MonitoringTimers.Current.GetNewStopwatch(true);

            try
            {
                result.Data.Next = facebookId + "/likes?format=json&limit=5000";
                do
                {
                    dynamic d = GraphAPI.Get(result.Data.Next, accessToken);

                    FacebookLikes pageResult = ConvertToFacebookLikes(d);

                    if (pageResult.Likes != null && pageResult.Likes.Count > 0)
                    {
                        result.Data.Likes.AddRange(pageResult.Likes);
                        result.Data.Next = pageResult.Next;

                        if (pageResult.Likes.Count < 5000)
                        {
                            result.Data.Next = null;
                        }
                    }
                    else
                    {
                        result.Data.Next = null;
                    }
                }while (!string.IsNullOrEmpty(result.Data.Next));
            }
            catch (FacebookOAuthException)
            {
                result.SetHasExpired();
            }
            catch (Exception e)
            {
                result.HasError = true;
                Logger.Current.Error("SocialGraph.GetFriendIds", "Could not update a Facebook user's social graph", e);
            }
            finally
            {
                //TODO : ajouter un compteur sur le nombre de like récupérés
                watch.Stop();
                MonitoringTimers.Current.AddTime(Counters.Facebook_GetUserLikes, watch);
            }

            return(result);
        }