예제 #1
0
파일: Worker.cs 프로젝트: mdileep/Chandam
        public static void OnFBShare()
        {
            OverlayDialog OD = new OverlayDialog();

            OD.PreOKCallBack = delegate()
            {
                string content = "d=" + Util.GetValue("txt");

                Ajax.MakeCall("/Link.ashx?r=" + new Date().ToUTCString(), new AjaxCallback(delegate(string err, string data, XHR xhr)
                {
                    FeedParams FP  = new FeedParams();
                    FP.Name        = Strings.Title;
                    FP.Caption     = Strings.TagLine;
                    FP.Description = Strings.StandardDesc;
                    FP.Picture     = "http://chandam.apphb.com/img/fbPreView.png?r" + new Date().ToUTCString();
                    FP.Link        = "http://chandam.apphb.com/?p=" + data;
                    FP.Message     = Util.GetValue("txt");
                    FBUtil.Post(FP);
                }), HTTPMethod.POST, content, false);


                return(true);
            };

            OD.Title   = Strings.FBTitle;
            OD.Content = Util.GetValue("txt").Replace("\n", "<br/>");
            OD.Show();
        }
예제 #2
0
 void APICallback(string response)
 {
     profile = FBUtil.DeserializeJSONProfile(response);
     GameStateManager.Username = profile["first_name"];
     StartCoroutine(
         FBUtil.GetPictureTexture(facebookID : FB.UserId, callback : delegate(Texture t) { GameStateManager.UserTexture = t; })
         );
     friends = FBUtil.DeserializeJSONFriends(response);
 }
예제 #3
0
    IEnumerator GetFriendTexture(string uid)
    {
        string url = FBUtil.GetPictureURL(uid, 128, 128);
        WWW    www = new WWW(url);

        yield return(www);

        friendImages.Add(uid, (Texture)www.texture);
    }
예제 #4
0
    void HandleUserName(FBResult result)
    {
        if (result.Error != null)
        {
            FB.API(FBUtil.GetPictureURL("me", 128, 128), Facebook.HttpMethod.GET, HandleAvatar);
            return;
        }

        profile = FBUtil.DeserializeJSONProfile(result.Text);
        Text UserMsg = UIFB_UserName.GetComponent <Text>();

        UserMsg.text = "Hallo, " + profile["first_name"];
    }
예제 #5
0
    void HandleAvatar(FBResult result)
    {
        //If avatar GET call results in an error, retry calling it
        if (result.Error != null)
        {
            FB.API(FBUtil.GetPictureURL("me", 128, 128), Facebook.HttpMethod.GET, HandleAvatar);
            return;
        }
        //Get empty img of UI
        Image UserAvatar = UIFB_Avatar.GetComponent <Image>();

        //Fill this img with the correct FB profile picture
        UserAvatar.sprite = Sprite.Create(result.Texture, new Rect(0, 0, 128, 128), new Vector2(0, 0));
    }
예제 #6
0
파일: Worker.cs 프로젝트: mdileep/Chandam
        private static void SetupChandam()
        {
            FBUtil.Init();            //External First

            LoadRules();
            LoadSamples();
            LoadRandom();

            InitDesigner();
            InitList();
            ShowToolBar();
            InitNotification();
            InitRandom();

            RestoreOptions();
            ManageNotification();
        }
예제 #7
0
    private void ScoresCallback(FBResult result)
    {
        //Deserialize JSON result friends scores
        scoresList = FBUtil.DeserializeScores(result.Text);

        //Empty scorelist UI
        foreach (Transform item in ScoreScrollList.transform)
        {
            GameObject.Destroy(item.gameObject);
        }

        foreach (object score in scoresList)
        {
            var entry = (Dictionary <string, object>)score;
            var user  = (Dictionary <string, object>)entry["user"];

            GameObject ScorePanel;
            ScorePanel = Instantiate(ScoreEntryPanel) as GameObject;
            ScorePanel.transform.parent = ScoreScrollList.transform;

            //get name of friend + score
            Transform ScoreName  = ScorePanel.transform.Find("FriendName");
            Transform ScoreScore = ScorePanel.transform.Find("FriendScore");
            Text      scoreName  = ScoreName.GetComponent <Text>();
            Text      scoreScore = ScoreScore.GetComponent <Text>();

            scoreName.text  = user["name"].ToString();
            scoreScore.text = entry["score"].ToString();

            //get friend avatar
            Transform UserAvatar = ScorePanel.transform.Find("FriendAvatar");
            Image     userAvatar = UserAvatar.GetComponent <Image>();;

            FB.API(FBUtil.GetPictureURL(user["id"].ToString(), 128, 128), Facebook.HttpMethod.GET, delegate(FBResult pictureResult)
            {
                if (pictureResult.Error != null)
                {
                    Debug.Log(pictureResult.Error);
                }
                else
                {
                    userAvatar.sprite = Sprite.Create(pictureResult.Texture, new Rect(0, 0, 128, 128), new Vector2(0, 0));
                }
            });
        }
    }
예제 #8
0
    void ScoresCallback(string response)
    {
        scores = new Dictionary <string, object>();
        List <object> scoresList = FBUtil.DeserializeScores(response);

        foreach (object score in scoresList)
        {
            Dictionary <string, object> entry = (Dictionary <string, object>)score;
            Dictionary <string, object> user  = (Dictionary <string, object>)entry["user"];

            scores.Add((string)user["id"], entry);

            StartCoroutine(
                GetFriendTexture((string)user["id"])
                );
        }
    }
예제 #9
0
    //HANDLE METHOD: GET ONE achievement, GET ALL achievements - PLAYER
    void HandleGetAchievement(FBResult result)
    {
        if (result != null)
        {
            //Deserialize JSON result into usable data
            dataList = FBUtil.DeserializeScores(result.Text);
            foreach (object dataInstance in dataList)
            {
                var entry = (Dictionary <string, object>)dataInstance;
                var data  = (Dictionary <string, object>)entry["data"];

                var achievements = (Dictionary <string, object>)data["achievement"];

                namen.Add(achievements["title"].ToString());
                Debug.Log(achievements["title"].ToString());
            }
        }
    }
예제 #10
0
    //HANDLE METHOD: GET ALL achievements - APP
    void HandleGetAllAppAchievements(FBResult result)
    {
        //Deserialize JSON result into usable data
        if (result != null)
        {
            dataList = FBUtil.DeserializeScores(result.Text);
            foreach (object dataInstance in dataList)
            {
                var entry = (Dictionary <string, object>)dataInstance;

                List <object> images = entry["image"] as List <object>;
                foreach (object image in images)
                {
                    var imageEntry = (Dictionary <string, object>)image;
                }
            }
        }
    }
예제 #11
0
    void HandleFBMenus(bool isLoggedIn)
    {
        //If user is logged in menu is shown and filled with data
        if (isLoggedIn)
        {
            UIFB_IsLoggedIn.SetActive(true);
            UIFB_IsNotLoggedIn.SetActive(false);

            //get avatar
            FB.API(FBUtil.GetPictureURL("me", 128, 128), Facebook.HttpMethod.GET, HandleAvatar);

            //get username
            FB.API("/me?fields=id,first_name", Facebook.HttpMethod.GET, HandleUserName);

            // Check for Achievements
            GameControl.control.AchievementCheck();
            GameControl.control.FBlogin = true;
        }
        else
        {
            UIFB_IsLoggedIn.SetActive(false);
            UIFB_IsNotLoggedIn.SetActive(true);
        }
    }
예제 #12
0
    void OnGUI()
    {
        GUI.skin = MenuSkin;
        if (Application.loadedLevel != 0)
        {
            return;
        }

        MenuSkin.GetStyle("topbar").fixedWidth = Screen.width;
        GUILayout.Box("", MenuSkin.GetStyle("topbar"));
        GUI.DrawTexture(new Rect(0, 0, 256, 64), LogoTexture);

        string panelText = "Login to Facebook";

        if (FB.IsLoggedIn)
        {
            panelText = "Welcome ";
            if (GameStateManager.Username != null)
            {
                panelText += GameStateManager.Username + "!";
            }
            else
            {
                panelText += "Smasher!";
            }
        }

        if (GameStateManager.Score > 0)
        {
            panelText += "\nScore: " + GameStateManager.Score.ToString();
        }

        GUILayout.Box("", MenuSkin.GetStyle("panel_welcome"));
        if (GameStateManager.UserTexture != null)
        {
            GUI.DrawTexture(new Rect(8, 74, 150, 150), GameStateManager.UserTexture);
        }
        GUI.Label(new Rect(6 + 160 + 6, 72, 459 - (6 + 160 + 6), 160), panelText, MenuSkin.GetStyle("text_only"));

        if (!FB.IsLoggedIn)
        {
            if (GUI.Button(buttonSize, "", MenuSkin.GetStyle("button_login")))
            {
                FB.Login("email,publish_actions", LoginCallback);
            }
        }

        if (GUILayout.Button("", MenuSkin.GetStyle("button_play")))
        {
            if (friends != null && friends.Count > 0)
            {
                Dictionary <string, string> friend = FBUtil.RandomFriend(friends);
                GameStateManager.FriendName = friend["first_name"];
                GameStateManager.FriendID   = friend["id"];
                StartCoroutine(FBUtil.GetFriendPictureTexture(friend["id"]));
            }

            Application.LoadLevel("GameStage");
            GameStateManager.Instance.StartGame();
        }

        if (FB.IsLoggedIn)
        {
            if (GameStateManager.Score > 0)
            {
                if (GUILayout.Button("", MenuSkin.GetStyle("button_brag")))
                {
                    FB.Feed(
                        linkCaption: "I just smashed " + GameStateManager.Score.ToString() + " friends! Can you beat it?",
                        picture: "http://www.friendsmash.com/images/logo_large.jpg",
                        linkName: "Checkout my Friend Smash greatness!",
                        link: "http://apps.facebook.com/friendsmashunity/?challenge_brag=" + (FB.IsLoggedIn ? FB.UserId : "guest")
                        );
                }
            }


            if (GUILayout.Button("", MenuSkin.GetStyle("button_challenge")))
            {
                if (GameStateManager.Score != 0 && GameStateManager.FriendID != null)
                {
                    string[] recipient = { GameStateManager.FriendID };
                    FB.AppRequest(
                        message: "I just smashed you " + GameStateManager.Score.ToString() + " times! Can you beat it?",
                        to: recipient,
                        data: "{\"challenge_score\":" + GameStateManager.Score.ToString() + "}",
                        title: "Friend Smash Challenge!"
                        );
                }
                else
                {
                    FB.AppRequest(
                        message: "Friend Smash is smashing! Check it out.",
                        title: "Play Friend Smash with me!"
                        );
                }
            }

            TournamentCallback();
        }


        #if UNITY_WEBPLAYER
        Screen.fullScreen = GUILayout.Toggle(Screen.fullScreen, "");
        #endif
    }