コード例 #1
0
        private static FacebookFriends ConvertToFacebookSocialGraph(dynamic d)
        {
            FacebookFriends socialGraph = new FacebookFriends();

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

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

            return(socialGraph);
        }
コード例 #2
0
        public static FacebookOAuthResult <FacebookFriends> GetUserFriends(string facebookId, string accessToken)
        {
            FacebookOAuthResult <FacebookFriends> result = new FacebookOAuthResult <FacebookFriends>();
            IStopwatch watch = MonitoringTimers.Current.GetNewStopwatch(true);

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

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

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

            return(result);
        }
コード例 #3
0
        public ActionResult Index()
        {
            string                  xml;
            FacebookApp             app             = new FacebookApp();
            JsonObject              me              = (JsonObject)app.Get("me");
            JsonObject              friends         = (JsonObject)app.Get("me/friends");
            FacebookFriends         facebookFriends = JsonConvert.DeserializeObject <FacebookFriends>(friends.ToString());
            XmlSerializer           serializer      = new XmlSerializer(typeof(GraphML));
            XmlSerializerNamespaces namespaces      = new XmlSerializerNamespaces();
            List <FacebookUser>     users           = new List <FacebookUser>();
            GraphML                 graphML         = new GraphML();

            // Add Users
            users.Add(JsonConvert.DeserializeObject <FacebookUser>(me.ToString()));

            foreach (FacebookUser user in facebookFriends.Friends)
            {
                JsonObject friend = (JsonObject)app.Get(user.Id.ToString());
                users.Add(JsonConvert.DeserializeObject <FacebookUser>(friend.ToString()));
            }

            // Prepare the keys
            AddKeys(graphML.Keys);

            // Add the Berico namspace
            namespaces.Add("berico", "http://graph.bericotechnologies.com/xmlns");

            foreach (FacebookUser user in users)
            {
                graphML.Graph.Nodes.Add(Mapper.Map <FacebookUser, Node>(user));
            }

            using (MemoryStream stream = new MemoryStream())
            {
                XmlDocument doc = new XmlDocument();

                serializer.Serialize(stream, graphML, namespaces);
                stream.Seek(0, SeekOrigin.Begin);
                doc.Load(stream);

                // Read the XML into a string object
                xml = doc.OuterXml;
            }

            return(this.Content(xml, "txt/xml"));
        }
コード例 #4
0
    void Awake()
    {
        musicVolume  = PlayerPrefs.GetFloat("musicVolume", 1);
        soundsVolume = PlayerPrefs.GetFloat("soundsVolume", 1);

        // PlayerPrefs.DeleteAll();

        if (!mInstance)
        {
            mInstance = this;
        }

        else
        {
            Destroy(this.gameObject);
            return;
        }
        gameSettings      = GetComponent <GameSettings>();
        loginManager      = GetComponent <LoginManager>();
        levelData         = GetComponent <LevelData>();
        levels            = GetComponent <Levels>();
        levelsData        = GetComponent <LevelsData>();
        multiplayerData   = GetComponent <MultiplayerData>();
        energyManager     = GetComponent <EnergyManager>();
        musicManager      = GetComponent <MusicManager>();
        soundManager      = GetComponentInChildren <SoundManager>();
        notifications     = GetComponent <Notifications>();
        facebookShare     = GetComponent <FacebookShare>();
        screenManager     = GetComponent <ScreenManager>();
        challengesManager = GetComponent <ChallengersManager>();
        facebookFriends   = GetComponent <FacebookFriends>();
        tournament        = GetComponent <Tournament>();
        // levelsData.Init();

        DontDestroyOnLoad(this.gameObject);

        userData = GetComponent <UserData>();
        userData.Init();
        multiplayerData.Init();

        GetComponent <MusicManager>().Init();

        Events.ResetApp += ResetApp;
    }
コード例 #5
0
ファイル: SocialManager.cs プロジェクト: pontura/PungaRaid
    void Awake()
    {
        if (!mInstance)
            mInstance = this;
        else
        {
            Destroy(this.gameObject);
            return;
        }

        DontDestroyOnLoad(this.gameObject);

        loginManager = GetComponent<LoginManager>();
        facebookFriends = GetComponent<FacebookFriends>();
        userData = GetComponent<UserData>();
        userHiscore = GetComponent<UserHiscore>();
        ranking = GetComponent<Ranking>();
        challengesManager = GetComponent<ChallengersManager>();
        challengeData = GetComponent<ChallengeData>();
        userData.Init();
    }
コード例 #6
0
    void Awake()
    {
        if (!mInstance)
        {
            mInstance = this;
        }
        else
        {
            Destroy(this.gameObject);
            return;
        }

        DontDestroyOnLoad(this.gameObject);

        loginManager      = GetComponent <LoginManager>();
        facebookFriends   = GetComponent <FacebookFriends>();
        userData          = GetComponent <UserData>();
        userHiscore       = GetComponent <UserHiscore>();
        ranking           = GetComponent <Ranking>();
        challengesManager = GetComponent <ChallengersManager>();
        challengeData     = GetComponent <ChallengeData>();
        userData.Init();
    }