예제 #1
0
    void Awake()
    {
        instance = gameObject.GetComponent <NetworkController>();

        // facebook
        facebook = GameObject.Find("Play Controller").GetComponent <FacebookConnector>();
        facebook.EventCallback += new SnEventHandler(OnFacebookEvent);
        facebook.Init();

        // funapi network
        network = new FunapiNetwork(false);
        network.OnSessionInitiated += new FunapiNetwork.SessionInitHandler(OnSessionInitiated);
        network.OnSessionClosed    += new FunapiNetwork.SessionCloseHandler(OnSessionClosed);

        FunapiTcpTransport transport = new FunapiTcpTransport(kServerIp, 8022, FunEncoding.kProtobuf);

        transport.AutoReconnect = true;
        network.AttachTransport(transport);

        network.RegisterHandler("sc_spawn_self", this.OnSpawnSelf);
        network.RegisterHandler("sc_spawn_other", this.OnSpawnOther);
        network.RegisterHandler("sc_update", this.OnUpdate);
        network.RegisterHandler("sc_killed", this.OnKilled);
        network.RegisterHandler("sc_face", this.OnFaceUpdate);
    }
예제 #2
0
        public ActionResult SocialLogin()
        {
            FacebookConnector fb = new FacebookConnector();

            return(this.Redirect(fb.LoginUrl(RedirectUri.AbsoluteUri)));
            //return View();
        }
예제 #3
0
        public IActionResult listGroupsBySource()
        {
            var result = new SerializeableGroupList();

            using (var db = new ClassroomContext())
            {
                var fb          = new FacebookConnector(HttpContext.Session);
                var facebookSet = new SerializableGroupSet();
                facebookSet.Name = "Facebook";
                var fbGroups = fb.getGroups();
                fbGroups.ForEach(x =>
                {
                    var group  = new SerializeableSingleGroup();
                    group.Name = x.name;
                    group.Id   = x.id;
                    if (db.FacebookGroups.Where(y => y.id == x.id).Count() != 0)
                    {
                        group.isAdded = true;
                    }
                    else
                    {
                        group.isAdded = false;
                    }
                    facebookSet.Groups.Add(group);
                });
                result.Groups.Add(facebookSet);
            }
            return(Json(result));
        }
예제 #4
0
        public IActionResult saveGroupToRoom(int roomId, string groupset, string groupid)
        {
            using (var db = new ClassroomContext())
            {
                if (groupset.ToLower() == "facebook")
                {
                    var faceGroup = new FacebookGroup();
                    var fb        = new FacebookConnector(HttpContext.Session);
                    var fbGroups  = fb.getGroups();
                    faceGroup             = fbGroups.Where(x => x.id == groupid).FirstOrDefault();
                    faceGroup.ClassroomId = roomId;
                    if (db.FacebookGroups.Where(x => x.id == groupid && x.ClassroomId == roomId).Count() == 0)
                    {
                        db.FacebookAuthSet.Update(faceGroup.parentAuth);
                        db.FacebookGroups.Add(faceGroup);
                    }
                    else
                    {
                        db.FacebookGroups.Remove(db.FacebookGroups.Where(x => x.id == groupid && x.ClassroomId == roomId).First());
                    }
                }

                db.SaveChanges();
            }
            return(Content("success"));
        }
예제 #5
0
        private void InitializeApp()
        {
            dbHelper        helper  = new dbHelper();
            ApplicationInfo appInfo = helper.GetAppInfo();

            FacebookConnector fbApi = new FacebookConnector(appInfo.ApplicationURL, appInfo.ApplicationId, appInfo.RedirectURL, appInfo.ApplicationSecret, appInfo.PageId, appInfo.ApplicationAT, appInfo.PageOwnerId);

            Session["fbApi"] = fbApi;
        }
예제 #6
0
        private void showUserInfo()
        {
            FacebookConnector facebookConnector = FacebookConnector.GetInstance;

            facebookConnectorBindingSource.DataSource = facebookConnector;
            showPosts();
            listBoxAlbums.Invoke(new Action(() => albumsBindingSource.DataSource   = facebookConnector.Albums));
            listBoxFriends.Invoke(new Action(() => friendsBindingSource.DataSource = facebookConnector.Friends));
            buttonLogOut.Invoke(new Action(() => buttonLogOut.Visible = true));
            labelUserFirstName.Invoke(new Action(() => facebookConnectorBindingSource.ResetBindings(false)));
        }
예제 #7
0
 /**
  * Use this for initialization
  **/
 private void Start()
 {
     mWifi = new WifiManager();
     if (!mWifi.WaitForWifi())        //ensure that wifi is ON when app starts or quit
     {
         Application.Quit();
     }
     mFB                 = new FacebookConnector();
     mAndroidSID         = new AndroidSecureID();
     mTimeout            = new Timeout(mTimeoutValue, TimeoutGoToWelcome);
     Screen.sleepTimeout = SleepTimeout.NeverSleep;    //device screen should never turn off
     mCurrentState       = ScreensStates.REGISTRATION; //start application on registration screen
     mCamera.AutomaticRotation(mTimeout);              //use automatic rotation of welcome photo
     UpdateScreen();
 }
예제 #8
0
        public ActionResult SocialLoginback(string code, string error, string error_reason)
        {
            var fb = new FacebookConnector();
            var wowBiz = new WoWBiz();

            var accessToken = fb.GetAccessToken(code, RedirectUri.AbsoluteUri);

            // Store the access token in the session for farther use
            Session["AccessToken"] = accessToken;

            // Get user profile from facebook
            dynamic userProfile = fb.GetUserProfile(accessToken);

            #region User Process
            var clientId = userProfile.id;
            var userProfileImage = string.Format("https://graph.facebook.com/{0}/picture", userProfile.id);
            //Create user for first times login
            var existingUser = wowBiz.GetUserByClientId((string)clientId);
            if (existingUser == null)
            {
                var user = new Core.User
                {
                    ImageUrl = userProfileImage,
                    Name = string.Format("{0} {1}", userProfile.first_name, userProfile.last_name),
                    Socials = new List<Core.Social>{
                        new Core.Social{
                            ClientId_ = clientId,
                            Email = userProfile.email,
                            Name = string.Format("{0} {1}", userProfile.first_name, userProfile.last_name),
                            Token = accessToken,
                            Type = (int)Core.Enum.SocialType.Facebook,
                        }
                    }
                };
                var success = wowBiz.CreateNewUser(user);
                existingUser = user;
            }
            else
            {
                //Update
                wowBiz.UpdateSocialToken(existingUser.Socials.First().Id, accessToken);
            }
            Session["User"] = existingUser;
            #endregion
            // Set the auth cookie
            FormsAuthentication.SetAuthCookie(userProfile.email, false);
            return RedirectToAction("Index", "Home");
        }
예제 #9
0
        public ActionResult SocialLoginback(string code, string error, string error_reason)
        {
            var fb     = new FacebookConnector();
            var wowBiz = new WoWBiz();

            var accessToken = fb.GetAccessToken(code, RedirectUri.AbsoluteUri);

            // Store the access token in the session for farther use
            Session["AccessToken"] = accessToken;

            // Get user profile from facebook
            dynamic userProfile = fb.GetUserProfile(accessToken);

            #region User Process
            var clientId         = userProfile.id;
            var userProfileImage = string.Format("https://graph.facebook.com/{0}/picture", userProfile.id);
            //Create user for first times login
            var existingUser = wowBiz.GetUserByClientId((string)clientId);
            if (existingUser == null)
            {
                var user = new Core.User
                {
                    ImageUrl = userProfileImage,
                    Name     = string.Format("{0} {1}", userProfile.first_name, userProfile.last_name),
                    Socials  = new List <Core.Social> {
                        new Core.Social {
                            ClientId_ = clientId,
                            Email     = userProfile.email,
                            Name      = string.Format("{0} {1}", userProfile.first_name, userProfile.last_name),
                            Token     = accessToken,
                            Type      = (int)Core.Enum.SocialType.Facebook,
                        }
                    }
                };
                var success = wowBiz.CreateNewUser(user);
                existingUser = user;
            }
            else
            {
                //Update
                wowBiz.UpdateSocialToken(existingUser.Socials.First().Id, accessToken);
            }
            Session["User"] = existingUser;
            #endregion
            // Set the auth cookie
            FormsAuthentication.SetAuthCookie(userProfile.email, false);
            return(RedirectToAction("Index", "Home"));
        }
예제 #10
0
        public IActionResult Groups()
        {
            FacebookConnector        fb     = new FacebookConnector(HttpContext.Session);
            List <FacebookGroup>     groups = fb.getGroups();
            List <FacebookGroupPost> posts  = fb.getGroupFeed("302929356816829");

            using (var db = new ClassroomContext())
            {
                db.FacebookGroupPosts.UpdateRange(posts);
                db.SaveChanges();
            }

            List <Document> documents = new List <Document>();


            return(View());
        }
예제 #11
0
        protected void Button3_Click(object sender, EventArgs e)
        {
            if (Object.ReferenceEquals(Session["fbApi"], null))
            {
                Server.Transfer("Error.aspx");
            }
            else
            {
                FacebookConnector fbApi = (FacebookConnector)Session["fbApi"];

                String link = @"https://www.facebook.com/dialog/oauth?client_id=" + fbApi.ApplicationID + "&redirect_uri=" +
                              fbApi.RedirectURL + "&scope=user_photos,friends_photos,user_birthday,friends_birthday,user_relationships,friends_relationships," +
                              "user_hometown,friends_hometown,user_location,friends_location,user_likes,friends_likes,publish_stream,read_stream";
                Session["token"]    = null;
                Session["nextPage"] = "Excel.aspx";
                Response.Redirect(link);
            }
        }
예제 #12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
            }
            else
            {
                if (Object.ReferenceEquals(Request.QueryString["code"], null))
                {
                    if (Object.ReferenceEquals(Session["fbApi"], null))
                    {
                        InitializeApp();
                    }
                }
                else
                {
                    FacebookConnector fbApi = (FacebookConnector)Session["fbApi"];
                    if (Object.ReferenceEquals(Session["token"], null))
                    {
                        fbApi.connectApp(Request.QueryString["code"], null);
                        Session["token"] = fbApi.AccessToken;
                    }
                    else
                    {
                        fbApi.connectApp(Request.QueryString["code"], Session["token"].ToString());
                    }

                    FacebookUser fbCurrentUser = fbApi.GetUserInfo(true);
                    Users        currentUser   = new Users();
                    currentUser.SNUserId = fbCurrentUser.UserID;
                    currentUser.UserName = fbCurrentUser.UserName;
                    currentUser.UserType = "facebook";
                    Session["user"]      = currentUser;
                    if (Object.ReferenceEquals(Session["nextPage"], null))
                    {
                        Server.Transfer("Design.aspx");
                    }
                    else
                    {
                        Server.Transfer(Session["nextPage"].ToString());
                    }
                }
            }
        }
예제 #13
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Object.ReferenceEquals(Session["fbApi"], null))
            {
                Server.Transfer("Error.aspx");
            }

            fbApi = (FacebookConnector)Session["fbApi"];
            if (Object.ReferenceEquals(Session["user"], null))
            {
                currentUser = (Users)Session["user"];
            }

            if (IsPostBack)
            {
            }

            Label1.Text = fbApi.AccessToken;
        }
예제 #14
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Object.ReferenceEquals(Session["fbApi"], null))
            {
                Server.Transfer("Error.aspx");
            }

            fbApi = (FacebookConnector)Session["fbApi"];
            if (Object.ReferenceEquals(Session["user"], null))
            {
                currentUser = (Users)Session["user"];
            }

            if (IsPostBack)
            {
            }

            Label1.Text = fbApi.AccessToken;
        }
예제 #15
0
 public IActionResult buildJobs()
 {
     RecurringJob.AddOrUpdate(() => FacebookConnector.syncGroups(), Cron.Daily());
     return(Content("built"));
 }
예제 #16
0
        public void TestNull()
        {
            var fb = new FacebookConnector();

            fb.GetUserInformation(null);
        }
예제 #17
0
        private void InitializeApp()
        {
            dbHelper helper = new dbHelper();
            ApplicationInfo appInfo = helper.GetAppInfo();

            FacebookConnector fbApi = new FacebookConnector(appInfo.ApplicationURL, appInfo.ApplicationId, appInfo.RedirectURL, appInfo.ApplicationSecret, appInfo.PageId, appInfo.ApplicationAT, appInfo.PageOwnerId);
            Session["fbApi"] = fbApi;
        }
예제 #18
0
        public void TestEmptyString()
        {
            var fb = new FacebookConnector();

            fb.GetUserInformation(string.Empty);
        }
예제 #19
0
 public ActionResult SocialLogin()
 {
     FacebookConnector fb = new FacebookConnector();
     return this.Redirect(fb.LoginUrl(RedirectUri.AbsoluteUri));
     //return View();
 }
예제 #20
0
        public void TestValidUser()
        {
            var fb = new FacebookConnector();

            Assert.IsNotNull(fb.GetUserInformation(_validUserName));
        }
예제 #21
0
        public void TestInvalidChacters()
        {
            var fb = new FacebookConnector();

            Assert.IsNull(fb.GetUserInformation("£$%^!&*(&*(&()*_"));
        }
예제 #22
0
        public void DoeInheritFromInterface()
        {
            var fb = new FacebookConnector();

            Assert.IsTrue(fb is ISocialMediaConnector);
        }