// GET: Facebook public ActionResult ListMyPhotos() { Models.UserPhotos objUserPhotos = new Models.UserPhotos(); Facebook.FacebookClient objFBClient = new Facebook.FacebookClient(GlobalSettings.Facebook_AccessToken); dynamic myPhotos = objFBClient.Get("/me/photos"); if (myPhotos.data.Count > 0) { for (int iPos = 0; iPos < myPhotos.data.Count; iPos++) { var currentRow = myPhotos.data[iPos]; Models.UserPhotoInfo objUserPhotoInfo = new Models.UserPhotoInfo(); objUserPhotoInfo.CreatedTime = DateTime.Parse(currentRow.created_time); objUserPhotoInfo.Name = currentRow.name; objUserPhotoInfo.Id = currentRow.id; dynamic currentPhotoInfo = objFBClient.Get(string.Format("{0}?fields=link,images", objUserPhotoInfo.Id)); var linkToFirstImage = currentPhotoInfo.images[0].source; //objUserPhotoInfo.PhotoLink = currentPhotoInfo.link; objUserPhotoInfo.PhotoLink = linkToFirstImage; objUserPhotos.PhotosInfo.Add(objUserPhotoInfo); } } return(View(objUserPhotos)); }
public JsonResult GetComment(string id) { UserLoginInfo user = (UserLoginInfo)Session[CommonConstants.USER_LOGIN]; var fb = new Facebook.FacebookClient(); fb.AccessToken = user.access_token; dynamic data = fb.Get(id + "/comments"); List <Comment> comments = new List <Comment>(); foreach (var com in data.data) { Comment comment = new Comment(); Facebooker fa = new Facebooker(); comment.id = com.id; comment.message = com.message; comment.created_time = com.created_time; fa.id = com.from.id; fa.name = com.from.name; dynamic dataImg = fb.Get(fa.id + "?fields=picture"); fa.linkImg = dataImg.picture.data.url; comment.fbker = fa; comments.Add(comment); } return(Json(new { data = comments }, JsonRequestBehavior.AllowGet)); }
public ActionResult FacebookCallBack(string code) { var fb = new Facebook.FacebookClient(); dynamic result = fb.Post("oauth/access_token", new { client_id = ConfigurationManager.AppSettings["FBAppId"], client_secret = ConfigurationManager.AppSettings["FBSecret"], redirect_uri = RedirectUri.AbsoluteUri, code = code, }); var accessToken = result.access_token; if (!string.IsNullOrEmpty(accessToken)) { fb.AccessToken = accessToken; dynamic me = fb.Get("me?fields=id,first_name,last_name,email"); UserFacebook users = new UserFacebook(); users.user_id = me.id; users.access_token = accessToken; users.email = me.email; users.first_name = me.first_name; users.last_name = me.last_name; Session.Add("infoUser", users); } else { } return(Redirect("/Login/Page")); }
public ActionResult FacebookCallback(string code) { var fb = new FacebookClient(); dynamic result = fb.Post("oauth/access_token", new { client_id = "520025764710565", client_secret = "0d7ea70fb467f9f5a5c9444b63f2f8a6", redirect_uri = RedirectUri.AbsoluteUri, code = code }); var accessToken = result.access_token; // Store the access token in the session Session["AccessToken"] = accessToken; // update the facebook client with the access token so // we can make requests on behalf of the user fb.AccessToken = accessToken; // Get the user's information dynamic me = fb.Get("me/home?type=newsfeed"); string email = me.email; // Set the auth cookie FormsAuthentication.SetAuthCookie(email, false); return(RedirectToAction("Index", "Home")); }
public ActionResult FacebookLoginResult() { string code = Request["code"]; Facebook.FacebookClient fb = new Facebook.FacebookClient(); fb.AppId = "958753294515704"; fb.AppSecret = "a77614a903afbf8f773c0f06295f08c8"; fb.AccessToken = code; dynamic result = fb.Post("/oauth/access_token", new { client_id = "958753294515704", client_secret = "a77614a903afbf8f773c0f06295f08c8", code = code, redirect_uri = "http://localhost:50903/Account/FacebookLoginResult" }); fb.AccessToken = result.access_token; dynamic userdata = fb.Get("me"); string name = userdata.name; string[] fullname = name.Split(' '); userdata.firstname = fullname[0]; userdata.lastname = fullname[1]; bool serviceresult = _socialUserService.SocialUserOperation((int)Common.SystemConstants.SystemConstannts.SOCIAL_TYPE.FACEBOOK, userdata.id, userdata.email, userdata.name, userdata.firstname, userdata.lastname, null); if (serviceresult) { return(RedirectToAction("Index", "Home", new { })); } return(null); }
public Authentication Login(LoginCredentials credentials) { var result = new Authentication(); var facebookCredentials = credentials as FacebookLoginCredentials; if (facebookCredentials != null) { var facebookSession = new Facebook.FacebookClient(facebookCredentials.AccessToken); dynamic me = facebookSession.Get("me"); var facebookUser = new FacebookUser { FacebookUserId = long.Parse(me["id"]), UserName = me["username"] }; result.UserId = _data.CheckOrInsertFacebookUser(facebookUser); var session = StartSession(result.UserId); result.Ticket = session.Key; result.ValidTill = session.Value; return result; } throw new NotImplementedException("Only facebook users are supported now"); }
public static ResponseData DeleteArticle(string originalUrl) { ResponseData responseData = new ResponseData(); try { var fbClient = new Facebook.FacebookClient(FbToken) { AppId = FbAppId, AppSecret = FbAppSecret }; //var fbParams = new Dictionary<string, object>{ ["fields"] = "instant_article" }; Dictionary <string, object> fbParams = new Dictionary <string, object>(); fbParams["fields"] = "instant_article"; //get dynamic articleInfo = fbClient.Get("/" + FbAPIVersion + "/?id=" + originalUrl + "&fields=instant_article", fbParams); if (articleInfo != null && !string.IsNullOrEmpty(articleInfo.instant_article.id)) { //delete var c = fbClient.Delete(string.Format("/{0}/{1}", FbAPIVersion, articleInfo.instant_article.id)); } } catch (Exception ex) { Logger.WriteLog(Logger.LogType.Error, ex.ToString()); } return(responseData); }
// GET: LoginPage/LoginPages public ActionResult Page() { UserFacebook user = (UserFacebook)Session["infoUser"]; var fb = new Facebook.FacebookClient(); fb.AccessToken = user.access_token; dynamic avatar = fb.Get("me/accounts?type=page"); dynamic data = avatar.data; lstPage = new List <Models.Pagefb>(); foreach (dynamic info in data) { Pagefb page = new Pagefb(); page.pageId = info.id; page.accessToken = info.access_token; page.category = info.category; page.pageName = info.name; page.perms = info.perms; lstPage.Add(page); } ViewData.Add("pages", lstPage); return(View()); }
public ActionResult FacebookCallBack(string code) { var fb = new Facebook.FacebookClient(); dynamic result = fb.Post("oauth/access_token", new { client_id = ConfigurationManager.AppSettings["FBAppId"], client_secret = ConfigurationManager.AppSettings["FBSecret"], redirect_uri = RedirectUri.AbsoluteUri, code = code, }); var accessToken = result.access_token; if (!string.IsNullOrEmpty(accessToken)) { fb.AccessToken = accessToken; dynamic me = fb.Get("me?fields=id,first_name,last_name,email,picture"); dynamic dataPic = me.picture; dynamic datasss = dataPic.data; UserLoginInfo users = new UserLoginInfo(); users.user_id = me.id; users.access_token = accessToken; users.email = me.email; users.first_name = me.first_name; users.last_name = me.last_name; users.url_image = datasss.url; Session[CommonConstants.USER_LOGIN] = users; } else { } return(Redirect("/Login/Page")); }
public Authentication Login(LoginCredentials credentials) { var result = new Authentication(); var facebookCredentials = credentials as FacebookLoginCredentials; if (facebookCredentials != null) { var facebookSession = new Facebook.FacebookClient(facebookCredentials.AccessToken); dynamic me = facebookSession.Get("me"); var facebookUser = new FacebookUser { FacebookUserId = long.Parse(me["id"]), UserName = me["username"] }; result.UserId = _data.CheckOrInsertFacebookUser(facebookUser); var session = StartSession(result.UserId); result.Ticket = session.Key; result.ValidTill = session.Value; return(result); } throw new NotImplementedException("Only facebook users are supported now"); }
public ActionResult FacebookCallback(string code) { var fb = new FacebookClient(); dynamic result = fb.Post("oauth/access_token", new { client_id = "520025764710565", client_secret = "0d7ea70fb467f9f5a5c9444b63f2f8a6", redirect_uri = RedirectUri.AbsoluteUri, code = code }); var accessToken = result.access_token; // Store the access token in the session Session["AccessToken"] = accessToken; // update the facebook client with the access token so // we can make requests on behalf of the user fb.AccessToken = accessToken; // Get the user's information dynamic me = fb.Get("me/home?type=newsfeed"); string email = me.email; // Set the auth cookie FormsAuthentication.SetAuthCookie(email, false); return RedirectToAction("Index", "Home"); }
private void fbLogin(HttpContext context) { string token = context.Request.Params["token"]; Facebook.FacebookClient client = new Facebook.FacebookClient(token); client.IsSecureConnection = true; Facebook.JsonObject o = (Facebook.JsonObject)client.Get("/me"); var db = GetDataContext1; using (var scope = db.GetTransaction()) { try { string first_name = (string)o["first_name"]; string name = (string)o["name"]; decimal id = Convert.ToDecimal(o["id"]); Data.POCOS.Facebook fb = new Data.POCOS.Facebook(); fb.name = name; fb.first_name = first_name; fb.gender = (string)o["gender"]; fb.id = id; fb.last_name = (string)o["last_name"]; fb.link = (string)o["link"]; fb.locale = (string)o["locale"]; fb.timezone = Convert.ToDouble(o["timezone"]); string updatedtime = (string)o["updated_time"]; DateTime dt; if (DateTime.TryParse(updatedtime, out dt)) { fb.updated_time = dt; } if (db.Exists <Data.POCOS.Facebook>(id)) { db.Update(fb); } else { db.Insert(fb); } Data.POCOS.AppUser au = Data.POCOS.AppUser.FirstOrDefault("Select top 1 * from AppUsers where facebookid=@0", id); if (au == null) { au = new Data.POCOS.AppUser(); au.FirstName = first_name; au.facebookid = id; db.Insert(au); } scope.Complete(); Common.WriteValue(Common.AuthCookie, au.ID.ToString()); Common.WriteValue(Common.InfoCookie, JObject.FromObject(new { email = au.Email, name = string.IsNullOrEmpty(au.FirstName) ? au.Name : au.FirstName, avatar = string.IsNullOrWhiteSpace(au.Avatar) ? null : Common.UploadedImageRelPath + au.Avatar, points = au.Points })); } finally { scope.Dispose(); } } }
private void fbLogin(HttpContext context) { string token = context.Request.Params["token"]; Facebook.FacebookClient client = new Facebook.FacebookClient(token); //client.Post() client.UseFacebookBeta = client.IsSecureConnection = true; Facebook.JsonObject o = (Facebook.JsonObject)client.Get("/me"); var db = new PetaPoco.Database(Common.HairStyleConnectionString, "System.Data.SqlClient"); using (var scope = db.GetTransaction()) { try { string first_name = (string)o["first_name"]; string name = (string)o["name"]; decimal id = Convert.ToDecimal(o["id"]); POCOS.Facebook fb = new POCOS.Facebook(); fb.name = name; fb.first_name = first_name; fb.gender = (string)o["gender"]; fb.id = id; fb.last_name = (string)o["last_name"]; fb.link = (string)o["link"]; fb.locale = (string)o["locale"]; fb.timezone = Convert.ToDouble(o["timezone"]); string updatedtime = (string)o["updated_time"]; DateTime dt; if (DateTime.TryParse(updatedtime, out dt)) { fb.updated_time = dt; } if (db.Exists <POCOS.Facebook>(id)) { db.Update(fb); } else { db.Insert(fb); } POCOS.AppUser au = POCOS.AppUser.FirstOrDefault("Select top 1 * from AppUsers where facebookid=@0", id); if (au == null) { au = new POCOS.AppUser(); au.FirstName = first_name; au.facebookid = id; db.Insert(au); } scope.Complete(); CookieUtil.WriteCookie(Common.AuthCookie, EncDec.Encrypt(JsonConvert.SerializeObject(new { ID = au.ID }), Common.DefaultPassword), false); CookieUtil.WriteCookie(Common.InfoCookie, JsonConvert.SerializeObject(new { email = au.Email, name = au.Name, avatar = string.IsNullOrWhiteSpace(au.Avatar) ? null : Common.UploadedImageRelPath + au.Avatar }), false); } finally { scope.Dispose(); } } }
public void FacebookUserHomeAPI(string UserId, string FacebookId) { try { Guid userid = Guid.Parse(UserId); FacebookHelper fbhelper = new FacebookHelper(); FacebookAccountRepository fbAccRepo = new FacebookAccountRepository(); FacebookAccount fbAccount = fbAccRepo.getFacebookAccountDetailsById(FacebookId, userid); Facebook.FacebookClient fb = new Facebook.FacebookClient(fbAccount.AccessToken); var home = fb.Get("/me/home"); dynamic profile = fb.Get("me"); fbhelper.getFacebookUserHome(home, profile); } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } }
public void FacebookUserFeedAPI(string UserId, string FacebookId) { try { Guid userid = Guid.Parse(UserId); FacebookHelper fbhelper = new FacebookHelper(); FacebookAccountRepository fbAccRepo = new FacebookAccountRepository(); FacebookAccount fbAccount = fbAccRepo.getFacebookAccountDetailsById(FacebookId, userid); Facebook.FacebookClient fb = new Facebook.FacebookClient(fbAccount.AccessToken); var feeds = fb.Get("/me/feed"); dynamic profile = fb.Get("me"); fbhelper.getFacebookUserFeeds(feeds, profile); } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } }
private UserProfile GetFromFacebook(ClaimsIdentity identity) { string accessToken = identity.FindFirstValue("FacebookAccessToken"); var fbClient = new Facebook.FacebookClient(accessToken); dynamic fbInfo = fbClient.Get("/me?fields=id,name,email,first_name,last_name"); return new UserProfile { Email = fbInfo.email, Name = fbInfo.name }; }
public ActionResult Index() { if (Session[CommonConstants.USER_LOGIN] == null) { return(Redirect("/LoginPage/Index")); } else { var user = (UserLoginInfo)Session[CommonConstants.USER_LOGIN]; Console.WriteLine(user.url_image); } ViewBag.Title = "Home Page"; List <Pagefb> lstpage = (List <Pagefb>)Session[CommonConstants.PAGE_LOGIN]; Pagefb page = lstpage[0]; var fb = new Facebook.FacebookClient(); fb.AccessToken = page.accessToken; dynamic piture = fb.Get("me?fields=picture"); dynamic feed = fb.Get("me/feed"); page.image = piture.picture.data.url; List <Feeds> feeds = new List <Feeds>(); foreach (var data in feed.data) { Feeds fe = new Feeds(); fe.id = data.id; fe.message = data.message; fe.create_time = data.created_time; feeds.Add(fe); } ViewData.Add("feeds", feeds); ViewData.Add("page", page); return(View()); }
private void FetchDP(string access_token) { Facebook.FacebookClient client = new Facebook.FacebookClient(); client.AccessToken = access_token; dynamic me = client.Get("me?fields=picture,email,name,gender"); pictureBox1.Load(me.picture.data.url); label1.Visible = true; string lable = "Hello " + me[2] + " !! Your email id is " + me[1]; label1.Text = lable; }
private static string GetFacebookToken() { var fb = new Facebook.FacebookClient(); dynamic token = fb.Get("/" + FbAPIVersion + "/oauth/access_token", new { client_id = FbAppId, client_secret = FbAppSecret, grant_type = "client_credentials" }); return(token != null ? token.access_token : string.Empty); }
public override ExternalAuthenticationInfo GetAuthenticationInfo(string accessToken) { var graph = new Facebook.FacebookClient(accessToken); var me = graph.Get<dynamic>("me"); return new ExternalAuthenticationInfo { AccessToken = accessToken, Id = me.id, Username = me.username, Name = me.name, Email = me.email }; }
private UserProfile GetFromFacebook(ClaimsIdentity identity) { string accessToken = identity.FindFirstValue("FacebookAccessToken"); var fbClient = new Facebook.FacebookClient(accessToken); dynamic fbInfo = fbClient.Get("/me?fields=id,name,email,first_name,last_name"); return(new UserProfile { Email = fbInfo.email, Name = fbInfo.name }); }
public JsonNetResult Login(FormCollection form) { var accessToken = form["accessToken"]; var fb = new Facebook.FacebookClient(accessToken); dynamic user = fb.Get("me"); this.ActivateUser(user.id); this.CreateAuthenticationCookie(accessToken, user); return new LoginResult(user.id); }
protected void Page_Load(object sender, EventArgs e) { if (this.CurrentMember != null && this.CurrentUser != null) { Response.Redirect(MyAccountItem.GetMyAccountPage().GetUrl()); } //assign placeholders uxEmailAddress.Attributes["placeholder"] = DictionaryConstants.EnterEmailAddressWatermark; uxFirstName.Attributes["placeholder"] = DictionaryConstants.FirstNameWatermark; uxPassword.Attributes["placeholder"] = DictionaryConstants.EnterPasswordWatermark; uxPasswordConfirm.Attributes["placeholder"] = DictionaryConstants.ReEnterNewPasswordWatermark; uxZipCode.Attributes["placeholder"] = DictionaryConstants.ZipCodeWatermark; //assign button text and mark as default button for form uxSubmit.Text = DictionaryConstants.SubmitButtonText; this.Page.Form.DefaultButton = this.uxSubmit.UniqueID; //setup signup text and navigation uxSignIn.Text = DictionaryConstants.SignInButtonText; uxSignIn.NavigateUrl = SignInPageItem.GetSignInPage().GetUrl(); //set validation valFirstName.ErrorMessage = DictionaryConstants.FirstNameErrorMessage; valEmail.ErrorMessage = valRegEmail.ErrorMessage = DictionaryConstants.EmailAddressErrorMessage; valRegEmail.ValidationExpression = Constants.Validators.Email; valPassword.ErrorMessage = valPasswordConfirm.ErrorMessage = DictionaryConstants.PasswordErrorMessage; valRegPassword.ValidationExpression = valRegPasswordConfirm.ValidationExpression = Constants.Validators.Password; //TODO: move to dictionary valRegPassword.ErrorMessage = valRegPasswordConfirm.ErrorMessage = DictionaryConstants.PasswordErrorMessage; //TODO: move to dictionary valCompPassword.ErrorMessage = valCompPasswordConfirm.ErrorMessage = DictionaryConstants.PasswordMatchError; valZipCode.ErrorMessage = DictionaryConstants.ZipCodeErrorMessage; valZipCode.ValidationExpression = Constants.Validators.ZipCode; if (!string.IsNullOrEmpty(AccessToken)) { var client = new Facebook.FacebookClient(AccessToken); dynamic me = client.Get("me", new { fields = "name,email" }); uxEmailAddress.Text = me.email; uxFirstName.Text = me.name; var pass = Guid.NewGuid().ToString().Substring(0, 12); uxPassword.Attributes["value"] = pass; uxPasswordConfirm.Attributes["value"] = pass; uxPassword.Enabled = false; uxPasswordConfirm.Enabled = false; } }
protected void Page_Load(object sender, EventArgs e) { if (this.CurrentMember != null && this.CurrentUser != null) { Response.Redirect(MyAccountItem.GetMyAccountPage().GetUrl()); } //assign placeholders uxEmailAddress.Attributes["placeholder"] = DictionaryConstants.EnterEmailAddressWatermark; uxFirstName.Attributes["placeholder"] = DictionaryConstants.FirstNameWatermark; uxPassword.Attributes["placeholder"] = DictionaryConstants.EnterPasswordWatermark; uxPasswordConfirm.Attributes["placeholder"] = DictionaryConstants.ReEnterNewPasswordWatermark; uxZipCode.Attributes["placeholder"] = DictionaryConstants.ZipCodeWatermark; //assign button text and mark as default button for form uxSubmit.Text = DictionaryConstants.SubmitButtonText; this.Page.Form.DefaultButton = this.uxSubmit.UniqueID; //setup signup text and navigation uxSignIn.Text = DictionaryConstants.SignInButtonText; uxSignIn.NavigateUrl = SignInPageItem.GetSignInPage().GetUrl(); //set validation valFirstName.ErrorMessage = DictionaryConstants.FirstNameErrorMessage; valEmail.ErrorMessage = valRegEmail.ErrorMessage = DictionaryConstants.EmailAddressErrorMessage; valRegEmail.ValidationExpression = Constants.Validators.Email; valPassword.ErrorMessage = valPasswordConfirm.ErrorMessage = DictionaryConstants.PasswordErrorMessage; valRegPassword.ValidationExpression = valRegPasswordConfirm.ValidationExpression = Constants.Validators.Password; //TODO: move to dictionary valRegPassword.ErrorMessage = valRegPasswordConfirm.ErrorMessage = DictionaryConstants.PasswordErrorMessage; //TODO: move to dictionary valCompPassword.ErrorMessage = valCompPasswordConfirm.ErrorMessage = DictionaryConstants.PasswordMatchError; valZipCode.ErrorMessage = DictionaryConstants.ZipCodeErrorMessage; valZipCode.ValidationExpression = Constants.Validators.ZipCode; if (!string.IsNullOrEmpty(AccessToken)) { var client = new Facebook.FacebookClient(AccessToken); dynamic me = client.Get("me", new { fields = "name,email" }); uxEmailAddress.Text = me.email; uxFirstName.Text = me.name; var pass = Guid.NewGuid().ToString().Substring(0, 12); uxPassword.Attributes["value"] = pass; uxPasswordConfirm.Attributes["value"] = pass; uxPassword.Enabled = false; uxPasswordConfirm.Enabled = false; } }
public Authorization AuthorizeCustomer(Login l) { ICustomerRepository repo = Models.RepoFactory.GetCustomerRepo(); Customer c=null; if (!l.EmailAddress.Equals("")) { c = repo.GetWithEmailAddress(l.EmailAddress); if (c == null) return null; if (!l.Password.ToUpper().Equals(c.Password.ToUpper())) return null; } else { Facebook.FacebookClient fb = new Facebook.FacebookClient(); c = repo.GetWithFacebookID(l.FacebookID); if (c == null) return null; fb.AccessToken = l.FacebookToken; try { dynamic me = fb.Get("me"); if (me == null || me.first_name.Equals("")) return null; } catch (Exception e) { return null; } c.FacebookAccessToken = l.FacebookToken; repo.Update(c); // store the newest Facebook access token since it may have changed } Authorization a = new Authorization("test" + System.DateTime.Now.Ticks.ToString()); a.CustomerID = c.ID; a.EmailAddress = c.EmailAddress; a.Type = c.Type; IAuthorizationRepository authRepo = new AuthorizationRepository(); authRepo.Add(a); // store the auth token in the repo return a; }
private void doLogin() { //blow out any existing member when someone tries to sign in try { //Reset session backed my groups from Whats Happening Now Session["_selectedGroups"] = null; //lets make sure to reset all user&member info before we start inflating it this.FlushCurrentMemberUser(); var membershipManager = new MembershipManager(); var currentMember = new Member(); if (!string.IsNullOrEmpty(AccessToken)) { var client = new Facebook.FacebookClient(AccessToken); dynamic me = client.Get("me", new { fields = "email" }); currentMember = membershipManager.GetMember(me.email); } else { currentMember = membershipManager.AuthenticateUser(uxEmailAddress.Text, uxPassword.Text); } if (currentMember != null) { this.CurrentMember = currentMember; this.CurrentUser = membershipManager.GetUser(currentMember.MemberId, true); this.ProfileRedirect(Constants.UserPermission.AgreedToTerms, null, true); //Redirect used here for profile?? this.ReturnRedirect(); var item = Sitecore.Context.Database.GetItem(Constants.Pages.MyAccount); // if you get this far, clear the redirect session URL Response.Redirect(Sitecore.Links.LinkManager.GetItemUrl(item)); } } catch (Exception ex) { uxError.Text = ex.Message; } }
public async Task <IHttpActionResult> RegisterExternal(RegisterExternalBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var info = await Authentication.GetExternalLoginInfoAsync(); if (info == null) { return(InternalServerError()); } if (model == null) { model = new RegisterExternalBindingModel(); } if (info.Login.LoginProvider == "Facebook") { var identity = Authentication.GetExternalIdentity(DefaultAuthenticationTypes.ExternalCookie); var accessToken = identity.FindFirstValue("FacebookAccessToken"); var fb = new Facebook.FacebookClient(accessToken); var o = (Facebook.JsonObject)fb.Get("/me?fields=email"); model.Email = o["email"].ToString(); } var user = new ApplicationUser() { UserName = model.Email, Email = model.Email }; IdentityResult result = await UserManager.CreateAsync(user); if (!result.Succeeded) { return(GetErrorResult(result)); } result = await UserManager.AddLoginAsync(user.Id, info.Login); if (!result.Succeeded) { return(GetErrorResult(result)); } return(Ok()); }
private void doLogin() { //blow out any existing member when someone tries to sign in try { //Reset session backed my groups from Whats Happening Now Session["_selectedGroups"] = null; //lets make sure to reset all user&member info before we start inflating it this.FlushCurrentMemberUser(); var membershipManager = new MembershipManager(); var currentMember = new Member(); if (!string.IsNullOrEmpty(AccessToken)) { var client = new Facebook.FacebookClient(AccessToken); dynamic me = client.Get("me", new { fields = "email" }); currentMember = membershipManager.GetMember(me.email); } else { currentMember = membershipManager.AuthenticateUser(uxEmailAddress.Text, uxPassword.Text); } if (currentMember != null) { this.CurrentMember = currentMember; this.CurrentUser = membershipManager.GetUser(currentMember.MemberId, true); this.ProfileRedirect(Constants.UserPermission.AgreedToTerms, null, true); //Redirect used here for profile?? this.ReturnRedirect(); var item = Sitecore.Context.Database.GetItem(Constants.Pages.MyAccount); // if you get this far, clear the redirect session URL Response.Redirect(Sitecore.Links.LinkManager.GetItemUrl(item)); } } catch (Exception ex) { uxError.Text = ex.Message; } }
private void DeletePreviousPost() { dynamic param = new ExpandoObject(); param.fields = "posts.since(" + DateTime.Now.ToString("ddMMMMyyyy") + "){id,message}"; var result = facebookClient.Get("me", param); var data = Convert.ToString(result.posts.data); List <Post> jsonArray = JsonConvert.DeserializeObject <List <Post> >(data); jsonArray.ForEach(post => { if (post.message.Contains(Environment.MachineName)) { facebookClient.Delete(post.id); } }); }
public HttpResponseMessage GetFacebookUser(string accessToken) { Facebook.FacebookClient client = new Facebook.FacebookClient(accessToken); dynamic me = client.Get("me"); string email = me.email; UserModel user = new UserModel(); try { user = unitOfWork.UserRepository.Get(u => u.Email == email).Select(x => Mapper.Map <UserModel>(x)).First(); return(OK(user)); } catch (Exception ex) { return(NotFound("Not Acceptable. There is no User with provided Guid.")); } }
public ActionResult Facebook(FacebookProfileModel model) { var accessToken = (String)Session["AccessToken"]; if (String.IsNullOrWhiteSpace(accessToken)) { throw new KatushaException("FacebookAccessToken", "No Facebook Access Token"); } var client = new Facebook.FacebookClient(accessToken); dynamic me = client.Get("/me?access_token=" + accessToken); //new { fields = "name,id,email,birthday" } //if (createStatus == KatushaMembershipCreateStatus.Success) { // FormsAuthentication.SetAuthCookie(user.UserName, createPersistentCookie: false); // return Json(new { status = "new", redir = Url.Action("Index", "Home"), tmp = me.id }); //} return(View(me)); }
/// <summary> /// Authorizes the specified model. /// </summary> /// <param name="model">The model.</param> public dynamic Authorize(ProviderAndAccessToken model) { try { var fbclient = new Facebook.FacebookClient(model.Token); dynamic fb = fbclient.Get("/me?locale=en_US&fields=name,email"); return(new { id = fb.id, userName = fb.email != null ? fb.email : fb.name != null ? fb.name : fb.id }); } catch (Exception) { throw; } }
//Lấy thông tin fb gửi về //chưa fix thông tin credential public ActionResult FacebookCallback(string code) { var fb = new Facebook.FacebookClient(); dynamic result = fb.Post("oauth/access_token", new { client_id = System.Configuration.ConfigurationManager.AppSettings["FbAppId"], client_secret = System.Configuration.ConfigurationManager.AppSettings["FbAppSecret"], redirect_uri = RedirectUri.AbsoluteUri, code = code, }); var accessToken = result.access_token; if (!string.IsNullOrEmpty(accessToken)) { fb.AccessToken = accessToken; //Lấy thông tin được gửi về dynamic me = fb.Get("me?fields=first_name,middle_name,last_name,id,email"); string email = me.email; string userName = me.email; string firstname = me.first_name; string middlename = me.middle_name; string lastname = me.last_name; //Tạo mới 1 User và gán thông tin vào user var user = new User(); user.Email = email; user.UserName = userName; user.Status = true; user.Name = firstname + " " + middlename + " " + lastname; user.CreatedDate = DateTime.Now; var id = new UserDao().InsertForFacebook(user); //Ghi vào database if (id > 0) { var userSession = new UserLogin(); userSession.UserName = user.UserName; userSession.UserID = user.ID; Session.Add(CommonConstants.USER_SESSION, userSession); //Session[CommonConstants.isAuthorized] = true; } } return(Redirect("/")); }
public async Task <HttpResponseMessage> Put() { Request.RegisterForDispose((IDisposable)_userManager); HttpContent requestContent = Request.Content; string jsonContent = await requestContent.ReadAsStringAsync(); var fbUser = JsonConvert.DeserializeAnonymousType(jsonContent, new { email = "", accessToken = "", name = "" } ); string email = fbUser.email; Facebook.FacebookClient fbclient = new Facebook.FacebookClient() { AccessToken = (string)fbUser.accessToken }; var me = fbclient.Get <FbUserModel>("me?fields=email"); if (email != me.email) { return(HelperClass.JsonHttpResponse <Object>(null)); } User user = _userManager.FindByEmail(email, true); if (user == null) { _userManager.AddUser(user = new User() { Username = fbUser.name, Email = fbUser.email, Fullname = fbUser.name, IsFacebookUser = true }); } var token = _authenticationService.GenerateToken(user.Username); return(HelperClass.JsonHttpResponse(token)); }
public static ResponseData GetListArticle(int pageIndex, int pageSize) { ResponseData responseData = new ResponseData(); var fbClient = new Facebook.FacebookClient(FbToken) { AppId = FbAppId, AppSecret = FbAppSecret }; dynamic listArticles = fbClient.Get(string.Format("{0}/{1}/instant_articles?access_token={2}", FbAPIVersion, FbPageId, FbToken)); if (listArticles != null) { responseData.Success = true; responseData.Data = listArticles; } return(responseData); }
public static User GetOrCreateUser(E3RadioEntities db, long userId) { var u = db.Users.SingleOrDefault(us => us.UserID == userId); if (u == null) { u = new e3Radio.Data.User(); // get the dude's info from book of face var fb = new Facebook.FacebookClient(); dynamic me = fb.Get("/" + userId); u.UserID = userId; u.Username = me.username ?? me.name; u.Name = me.name; u.FacebookLink = me.link; u.DateCreated = DateTime.Now; db.Users.Add(u); db.SaveChanges(); } return u; }
// GET: CognitiveServices public ActionResult AnalyzeImage(string imageId) { Facebook.FacebookClient objFBClient = new Facebook.FacebookClient(GlobalSettings.Facebook_AccessToken); dynamic currentPhotoInfo = objFBClient.Get(string.Format("{0}?fields=link,images", imageId)); var linkToFirstImage = currentPhotoInfo.images[0].source; System.Net.WebClient webClient = new System.Net.WebClient(); //byte[] photoBytes = webClient.DownloadData(linkToFirstImage); string apiKey = System.Configuration.ConfigurationManager.AppSettings["ApiKey-ComputerVision"]; string requestUrl = "https://westus.api.cognitive.microsoft.com/vision/v1.0/analyze?language=en&visualFeatures={0}&details={1}"; requestUrl = string.Format(requestUrl, "Categories,Tags,Description,Faces,ImageType,Color,Adult", "Celebrities"); System.Net.WebRequest request = System.Net.WebRequest.Create(requestUrl); request.ContentType = "application/json"; //request.Headers.Add("visualFeatures", "Categories,Tags,Description,Faces,ImageType,Color,Adult"); //request.Headers.Add("details", "Celebrities"); request.Headers.Add("Ocp-Apim-Subscription-Key", apiKey); request.Method = "Post"; string bodyContent = "{\"url\":\"{0}\"}"; bodyContent = bodyContent.Replace("{0}", linkToFirstImage); using (System.IO.StreamWriter writer = new System.IO.StreamWriter(request.GetRequestStream())) { writer.Write(bodyContent); writer.Close(); } var response = request.GetResponse(); var responseStream = response.GetResponseStream(); Models.APIs.ComputerVision.CompputerVisionInfo model = null; using (System.IO.StreamReader reader = new System.IO.StreamReader(responseStream)) { string returnedContent = reader.ReadToEnd(); model = Newtonsoft.Json.JsonConvert.DeserializeObject < Models.APIs.ComputerVision.CompputerVisionInfo>(returnedContent); model.ImageUrl = linkToFirstImage; reader.Close(); } return(View(model)); }
public static User GetOrCreateUser(E3RadioEntities db, long userId) { var u = db.Users.SingleOrDefault(us => us.UserID == userId); if (u == null) { u = new e3Radio.Data.User(); // get the dude's info from book of face var fb = new Facebook.FacebookClient(); dynamic me = fb.Get("/" + userId); u.UserID = userId; u.Username = me.username ?? me.name; u.Name = me.name; u.FacebookLink = me.link; u.DateCreated = DateTime.Now; db.Users.Add(u); db.SaveChanges(); } return(u); }
public async void GenerateGigs(DateTime startDate, DateTime endDate, List <string> venues, System.Windows.Forms.RichTextBox rtbOutput) { var secrets = new ClientInformation(); using (System.IO.StreamReader r = new System.IO.StreamReader(@"C:\FacebookSecrets.json")) { string json = r.ReadToEnd(); secrets = JsonConvert.DeserializeObject <ClientInformation>(json); } var fb = new Facebook.FacebookClient(); dynamic result = fb.Get("oauth/access_token", new { client_id = secrets.ClientID, client_secret = secrets.ClientSecret, grant_type = "client_credentials" }); fb.AccessToken = result.access_token; Gigs = new List <Gig>(); foreach (string venue in venues) { var venueDetails = await fb.GetTaskAsync(string.Format("/{0}/events", venue)); var extractedGigs = JsonConvert.DeserializeObject <List <Gig> >(JObject.Parse(venueDetails.ToString()).SelectToken("data").ToString()); foreach (var gig in extractedGigs.Where(g => g.StartTime >= startDate && g.StartTime < endDate)) { Gigs.Add(gig); } } rtbOutput.Text = PrintGigs(startDate, endDate); }
protected override bool AuthorizeCore(HttpContextBase httpContext) { var isAuthorized = base.AuthorizeCore(httpContext); if (!isAuthorized) { return false; } string accessToken = null; FacebookUser me = null; try { // Check session for access token if (httpContext.Session["access_token"] != null){ accessToken = httpContext.Session["access_token"].ToString(); } else { // Check identity for access token //Get the current claims principal var identity = (ClaimsPrincipal)System.Threading.Thread.CurrentPrincipal; var claims = identity.Claims; // Access claims foreach (Claim claim in claims) { if (claim.Type == "FacebookAccessToken") { accessToken = claim.Value; } } } if (accessToken == null) { return false; } // End access token section // Check session for Me if ((FacebookUser)httpContext.Session["me"] != null){ me = (FacebookUser)httpContext.Session["me"]; } else { // Get new Facebook data with access token Facebook.FacebookClient facebook = new Facebook.FacebookClient(accessToken.ToString()); dynamic RawMe = facebook.Get("me?fields=name,picture.type(square)"); dynamic RawFriends = facebook.Get("me/friends?fields=name,picture.type(square),installed"); // Use Raw Data to populate helpful objects me = new FacebookUser(RawMe, RawFriends.data); // Put Me in session httpContext.Session["me"] = me; } // End Me section } catch (Exception e) { return false; } if (me != null) { me = null; return true; } else { return false; } }
private List<Counting> getUserLikedList(dynamic result, ref List<Counting> countingArr) { if (countingArr == null) countingArr = new List<Counting>(); // dynamic result1 = fbClient.Get("fql", new { q = "SELECT uid FROM user WHERE uid=me()" }); // while (me.data != null) // { foreach (var dataNode in result.data) { if (isGetByDate(dataNode.created_time) == true) { //Post liked of user if (dataNode.likes != null) { bool isExit = false; int likeCount = 0; if (dataNode.likes.Count < 25) likeCount = dataNode.likes.Count; else { var fbClient = new Facebook.FacebookClient(); fbClient.AccessToken = result.access_token; dynamic resultTmp = dataNode.likes; bool isContinute = true; for (int i = 0; isContinute == true; i = i + 100) { string rq = "https://graph.facebook.com/" + dataNode.id + "/likes?limit=100&offset=" + i; resultTmp = fbClient.Get(rq); if (resultTmp.data != null) { likeCount += resultTmp.data.Count; if (resultTmp.data.Count < 100) isContinute = false; } else isContinute = false; } } //bool isExit = false; //int likeCount = dataNode.likes.data.Count; //var fbClient = new Facebook.FacebookClient(); //fbClient.AccessToken = result.access_token; //dynamic resultTmp = dataNode.likes; //while (resultTmp.paging.next != null) //{ // fbClient = new Facebook.FacebookClient(); // fbClient.AccessToken = result.access_token; // resultTmp = fbClient.Get(resultTmp.paging.next); // if (resultTmp.data != null) // likeCount += resultTmp.data.Count; //} for (int i = 0; i < countingArr.Count && isExit == false; i++) { //UserPost userPost in members if (String.Compare(countingArr[i].id, dataNode.from.id) == 0) { countingArr[i].liked = countingArr[i].liked + likeCount; isExit = true; // break; } } if (isExit == false) { Counting tmp = new Counting(dataNode.from.id, 0, likeCount, 0, "", dataNode.from.name); countingArr.Add(tmp); } } } //Comement liked of User if (dataNode.comments != null) { dynamic resultTmp = dataNode.comments; //do //{ if (dataNode.comments.data.Count < 25) { foreach (var commentNode in resultTmp.data) { if (isGetByDate(commentNode.created_time) == true) { if (commentNode.like_count != 0) { int like_count = (int)commentNode.like_count; bool isExit = false; for (int i = 0; i < countingArr.Count && isExit == false; i++) { //UserPost userPost in members if (String.Compare(countingArr[i].id, commentNode.from.id) == 0) { countingArr[i].liked = countingArr[i].liked + like_count; isExit = true; // break; } } if (isExit == false) { Counting tmp = new Counting(commentNode.from.id, 0, like_count, 0, "", dataNode.from.name); countingArr.Add(tmp); } } } } // if (resultTmp.paging.next != null) // resultTmp = fbClient.Get(resultTmp.paging.next); // else // resultTmp = null; //} while (resultTmp != null); } //if (dataNode.comments.data.Count >= 25) else { bool isContinute = true; for (int i = 0; isContinute == true; i = i + 100) { string rq = "https://graph.facebook.com/" + dataNode.id + "/comments?limit=100&offset=" + i; var fbClient = new Facebook.FacebookClient(); fbClient.AccessToken = result.access_token; resultTmp = fbClient.Get(rq); if (resultTmp.data != null) { if (resultTmp.data.Count < 100) isContinute = false; foreach (var commentNode in resultTmp.data) { if (isGetByDate(commentNode.created_time) == true) { if (commentNode.like_count != 0) { int like_count = (int)commentNode.like_count; bool isExit = false; for (int j = 0; j < countingArr.Count && isExit == false; j++) { //UserPost userPost in members if (String.Compare(countingArr[j].id, commentNode.from.id) == 0) { countingArr[j].liked = countingArr[j].liked + like_count; isExit = true; // break; } } if (isExit == false) { Counting tmp = new Counting(commentNode.from.id, 0, like_count, 0, "", dataNode.from.name); countingArr.Add(tmp); } } } } } else isContinute = false; } } } } // me = fbClient.Get(me.paging.next); //} return countingArr; }
public ActionResult Login(FormCollection f) { var accessToken = f["accessToken"]; //get name and id from facebookClient var client = new Facebook.FacebookClient(accessToken); dynamic result = client.Get("me", new { fields = "first_name, last_name, id, username" }); //access the user model UserModel um = new UserModel(); //check if user exists, if exists: login, if not exists: create User u = new User(); u.Firstname = result.first_name; u.Lastname = result.last_name; u.FK_Role = 1; u.FB_UserId = result.id; u.FB_UserName = result.username; //important! fb id is now int 64, //but cannot convert dynamic result to int, so we use string (for now) Boolean exists = um.userExists(u.FB_UserId); if (!exists) { //user does not exist yet, create and log in try { u = um.saveUser(u); //if the user's id has been set: success if (u.User_Id == 0) { throw new Exception("User wasn't saved into database"); } } catch (Exception e) { Console.WriteLine(e); ViewBag.status = "error"; return View(); } } else{ //login the user try { u = um.logIn(u); //if the user's id has been set: success if (u.User_Id == 0) { throw new Exception("User couldn't be logged in"); } } catch (Exception e) { Console.WriteLine(e); ViewBag.status = "error"; return View(); } } //set the facebook id in the session: set that the user is logged in Session["firstname"] = u.Firstname; Session["lastname"] = u.Lastname; Session["fbUserId"] = result.id; Session["userId"] = u.User_Id; Session["fbUserId"] = result.id; Session["userLevel"] = u.FK_Role; ViewBag.status = "loggedIn"; return View(); }
public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl) { string provider = null; string providerUserId = null; if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId)) { return RedirectToAction("Manage"); } if (ModelState.IsValid) { // Insert a new user into the database using (AppDataContext db = new AppDataContext()) { User user = db.Users.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower()); // Check if user already exists if (user == null) { // Insert name into the profile table User newUser = db.Users.Add(new User { UserName = model.UserName }); db.SaveChanges(); bool facebookVerified; var client = new Facebook.FacebookClient(Session["facebooktoken"].ToString()); dynamic response = client.Get("me", new { fields = "verified" }); if (response.ContainsKey("verified")) { facebookVerified = response["verified"]; } else { facebookVerified = false; } db.ExternalUsers.Add(new ExternalUserInformation { UserId = newUser.UserID, FullName = model.FullName, Link = model.Link, Verified = facebookVerified }); db.SaveChanges(); newUser.ProfilePicUrl = "http://graph.facebook.com/" + providerUserId + "/picture?type=large"; db.SaveChanges(); OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName); OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false); return RedirectToLocal(returnUrl); } else { ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name."); } } } ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName; ViewBag.ReturnUrl = returnUrl; return View(model); }
public ActionResult FacebookCallbackLogin(string code) { try { var fb = new Facebook.FacebookClient(); dynamic result = fb.Post("oauth/access_token", new { client_id = Config.FacebookClientId, client_secret = Config.FacebookClientSecret, redirect_uri = RedirectUri.AbsoluteUri, code = code }); var accessToken = result.access_token; // Store the access token in the session Session["AccessToken"] = accessToken; // update the facebook client with the access token so // we can make requests on behalf of the user fb.AccessToken = accessToken; // Get the user's information dynamic me = fb.Get("me?fields=first_name,last_name,id,email,gender,username,birthday"); MemberResponseModel model = MemberRepository.GetSingleByFacebookId(me.id); if (model.Code == "-1" && model.Message.Contains("No member")) { MemberEditResponseModel data = MemberRepository.CreateMemberSimple(me.first_name, me.last_name, me.username, me.birthday, me.email, me.id, Contrib.CommonLib.MD5Hasher(me.first_name), me.gender == "male"); //Create member error if (data.Code == "-1") { var returnModel = new RegisterModel() { Email = me.email, FirstName = me.first_name, Gender = me.gender == "male", LastName = me.last_name, Birthday = Convert.ToDateTime(me.birthday) }; return View(@"~/Views/Account/SignUp.cshtml", returnModel); } //Create member success and then get avatar from facebook if (data.Code == "1") { //Get avatar from facebook api byte[] dataImg; using (var client = new WebClient()){ dataImg = client.DownloadData(string.Format(Config.FacebookGraphImage,me.username)); } var member = MemberRepository.ChangeAvatar(data.Message, "img.jpg", Convert.ToBase64String(dataImg), null); } model = MemberRepository.GetSingleByFacebookId(me.id); } SessionManager.IsLoggedIn = true; SessionManager.UserLogged = new UserProfile { FacebookId = model.Member.MemberFacebookId, FirstName = model.Member.MemberFirstName, LastName = model.Member.MemberLastName, UserName = model.Member.MemberUserName, UserId = model.Member.MemberId, Avatar = model.Member.MemberAvatar, AvatarMedium = model.Member.MemberAvatarMedium, Gender = model.Member.MemberGender }; return RedirectToAction("Index", "Home"); } catch (Exception ex) { Logger.Error(ex.Message); return RedirectToAction("Index", "Home"); } }
private void fbLogin(HttpContext context) { string token = context.Request.Params["token"]; Facebook.FacebookClient client = new Facebook.FacebookClient(token); client.IsSecureConnection = true; var me = client.Get("/me"); Facebook.JsonObject o = (Facebook.JsonObject)me; var db = GetDataContext1; using (var scope = db.GetTransaction()) { try { string first_name = (string)o["first_name"]; string name = (string)o["name"]; decimal id = Convert.ToDecimal(o["id"]); string email = (string)o["email"]; Data.POCOS.Facebook fb = new Data.POCOS.Facebook(); fb.name = name; fb.first_name = first_name; fb.gender = (string)o["gender"]; fb.id = id; fb.last_name = (string)o["last_name"]; fb.link = (string)o["link"]; fb.locale = (string)o["locale"]; fb.email = email; fb.timezone = Convert.ToDouble(o["timezone"]); string updatedtime = (string)o["updated_time"]; DateTime dt; if (DateTime.TryParse(updatedtime, out dt)) fb.updated_time = dt; if (db.Exists<Data.POCOS.Facebook>(id)) db.Update(fb); else db.Insert(fb); Data.POCOS.AppUser au = Data.POCOS.AppUser.FirstOrDefault("Select top 1 * from AppUsers where facebookid=@0", id); if (au == null) { au = new Data.POCOS.AppUser(); au.Email = email; au.FirstName = first_name; au.Create_date = DateTime.Now; string _name = Common.RemoveSpecialCharacters(first_name); var names = from o1 in GetDataContext2.AppUsers select o1.Name; string rs = null; while (names.Any(o1 => o1 == _name)) { if (!string.IsNullOrEmpty(rs)) _name = _name.TrimEnd(rs.ToCharArray()); rs = Common.RandomString(1); _name += rs; } au.Name = _name; au.facebookid = id; try { var query = string.Format(@"SELECT id, width, height, url, is_silhouette, real_width, real_height FROM profile_pic WHERE id={0}", id); dynamic parameters = new ExpandoObject(); parameters.q = query; dynamic obj = client.Get("/fql", parameters); Facebook.JsonObject det = (Facebook.JsonObject)obj; if (det["data"] != null) { Facebook.JsonArray jarray = ((Facebook.JsonArray)det["data"]); Facebook.JsonObject pic = (Facebook.JsonObject)jarray.First(); string url = (string)pic["url"]; WebClient webclient = new WebClient(); byte[] data = webclient.DownloadData(url); Image img = Image.FromStream(new MemoryStream(data)); string fn = Guid.NewGuid().ToString() + ".jpg"; string fp = Common.UploadedImagePath + fn; img.Save(fp, ImageFormat.Jpeg); au.Avatar = fn; } } catch { } db.Insert(au); } scope.Complete(); Common.WriteValue(Common.AuthCookie, au.ID.ToString()); Common.WriteValue(Common.InfoCookie, JObject.FromObject(new { email = au.Email, name = string.IsNullOrEmpty(au.FirstName) ? au.Name : au.FirstName, avatar = string.IsNullOrWhiteSpace(au.Avatar) ? null : Common.UploadedImageRelPath + au.Avatar, points = au.Points })); } finally { scope.Dispose(); } } }
public ActionResult ExternalLoginCallback(string returnUrl) { AuthenticationResult result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl })); if (!result.IsSuccessful) { return RedirectToAction("ExternalLoginFailure"); } if (OAuthWebSecurity.Login(result.Provider, result.ProviderUserId, createPersistentCookie: false)) { return RedirectToLocal(returnUrl); } if (User.Identity.IsAuthenticated) { // If the current user is logged in add the new account OAuthWebSecurity.CreateOrUpdateAccount(result.Provider, result.ProviderUserId, User.Identity.Name); return RedirectToLocal(returnUrl); } else { dynamic userinfo; if (result.Provider == "facebook") { Facebook.FacebookClient fb = new Facebook.FacebookClient(result.ExtraData["accesstoken"]); userinfo = fb.Get("me");//, new { fields = "username,first_name,last_name,email" }); userinfo["email"] = result.UserName; } else { throw new ArgumentOutOfRangeException("Unsupported authentication provider"); } string loginData = OAuthWebSecurity.SerializeProviderUserId(result.Provider, result.ProviderUserId); ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(result.Provider).DisplayName; ViewBag.ReturnUrl = returnUrl; return View("ExternalLoginConfirmation", new RegisterExternalLoginModel { UserName = userinfo["username"], FirstName = userinfo["first_name"], LastName = userinfo["last_name"], Email = userinfo["email"], ExternalLoginData = loginData } ); } }
private void fbLogin(HttpContext context) { string token = context.Request.Params["token"]; Facebook.FacebookClient client = new Facebook.FacebookClient(token); client.IsSecureConnection = true; Facebook.JsonObject o = (Facebook.JsonObject)client.Get("/me"); var db = GetDataContext1; using (var scope = db.GetTransaction()) { try { string first_name = (string)o["first_name"]; string name = (string)o["name"]; decimal id = Convert.ToDecimal(o["id"]); Data.POCOS.Facebook fb = new Data.POCOS.Facebook(); fb.name = name; fb.first_name = first_name; fb.gender = (string)o["gender"]; fb.id = id; fb.last_name = (string)o["last_name"]; fb.link = (string)o["link"]; fb.locale = (string)o["locale"]; fb.timezone = Convert.ToDouble(o["timezone"]); string updatedtime = (string)o["updated_time"]; DateTime dt; if (DateTime.TryParse(updatedtime, out dt)) fb.updated_time = dt; if (db.Exists<Data.POCOS.Facebook>(id)) db.Update(fb); else db.Insert(fb); Data.POCOS.AppUser au = Data.POCOS.AppUser.FirstOrDefault("Select top 1 * from AppUsers where facebookid=@0", id); if (au == null) { au = new Data.POCOS.AppUser(); au.FirstName = first_name; au.facebookid = id; db.Insert(au); } scope.Complete(); Common.WriteValue(Common.AuthCookie, au.ID.ToString()); Common.WriteValue(Common.InfoCookie, JObject.FromObject(new { email = au.Email, name = string.IsNullOrEmpty(au.FirstName) ? au.Name : au.FirstName, avatar = string.IsNullOrWhiteSpace(au.Avatar) ? null : Common.UploadedImageRelPath + au.Avatar, points = au.Points })); } finally { scope.Dispose(); } } }
public JsonResult GetComment(String postID) { if (String.Compare(accessToken, "") == 0 || postList == null) getData(); List<Post> cms = new List<Post>(); bool isContinute = true; for (int i = 0; i < result.data.Count && isContinute == true; i++) { if (String.Compare(result.data[i].id, postID) == 0) { if (result.data[i].comments != null && result.data[i].comments.data.Count != 0) { foreach (var cm in result.data[i].comments.data) { User user = createUser(cm.from.id, cm.from.name, 0, 0, 0); Post post = new Post(cm.id, user, cm.message, "", 0, (int)cm.like_count, cm.created_time); cms.Add(post); } if (result.data[i].comments.data.Count == 25) { var fbClient = new Facebook.FacebookClient(); if (String.Compare(accessToken, "") == 0) { result = fbClient.Get("oauth/access_token", new { client_id = appId, client_secret = appSecret, grant_type = "client_credentials" }); //fbClient.AccessToken = result.access_token; accessToken = result.access_token; } fbClient.AccessToken = accessToken; // result = fbClient.Get(postID + "/comments?limit=100");//id of group //need user limit and offse bool isCon = true; int limit = 70; for (int j = 25; isCon == true; j = j + limit) { dynamic tmp = fbClient.Get(postID + "/comments?limit=" + limit + "&offset=" + j); foreach (var cm in tmp.data) { User user = createUser(cm.from.id, cm.from.name, 0, 0, 0); Post post = new Post(cm.id, user, cm.message, "", 0, (int)cm.like_count, cm.created_time); cms.Add(post); } if (tmp.data.Count == 0) isCon = false; } } isContinute = false; } } } return Json(cms, JsonRequestBehavior.AllowGet); }
private void getData() { var fbClient = new Facebook.FacebookClient(); if (String.Compare(accessToken, "") == 0) { result = fbClient.Get("oauth/access_token", new { client_id = appId, client_secret = appSecret, grant_type = "client_credentials" }); accessToken = result.access_token; } fbClient.AccessToken = accessToken; result = fbClient.Get(groupId + "/feed?limit=10000");//id of group //need user limit and offse bool isContinute = true; int limit = 500; //for (int i = 0; isContinute == true; i = i + limit) //{ // allMember = fbClient.Get(groupId + "/members?fields=name,id,link,picture&limit=" + limit + "&offset=" + i); // isContinute = false; //} //members = getUserList(result); //postList = getPostList(result); }
private List<Counting> getPostCommentList(dynamic result, ref List<Counting> countingArr) { if (countingArr == null) countingArr = new List<Counting>(); // dynamic result1 = fbClient.Get("fql", new { q = "SELECT uid FROM user WHERE uid=me()" }); // while (me.data != null) // { foreach (var dataNode in result.data) { if (isGetByDate(dataNode.created_time) == true) { if (dataNode.comments != null) { //int likeCount = 0; //foreach() bool isExit = false; int commentCount = 0;// dataNode.comments.data.Count; int count = dataNode.comments.data.Count; if (count < 25) commentCount = dataNode.comments.data.Count; else { var fbClient = new Facebook.FacebookClient(); fbClient.AccessToken = accessToken; dynamic resultTmp;// = dataNode.comments; bool isContinute = true; for (int i = 0; isContinute == true; i = i + 50) { string rq = "https://graph.facebook.com/" + dataNode.id + "/comments?limit=50&offset=" + i; resultTmp = fbClient.Get(rq); if (resultTmp.data != null) { commentCount += resultTmp.data.Count; if (resultTmp.data.Count < 50) isContinute = false; } else isContinute = false; } } for (int i = 0; i < countingArr.Count && isExit == false; i++) { //UserPost userPost in members if (String.Compare(countingArr[i].id, dataNode.id) == 0) { countingArr[i].comment = countingArr[i].comment + commentCount; isExit = true; // break; } } if (isExit == false) { Counting tmp = new Counting(dataNode.id, commentCount, 0, 0, dataNode.created_time); countingArr.Add(tmp); } } } } // me = fbClient.Get(me.paging.next); //} //countingArr.Sort(Counting.commentCompare); return countingArr; }
public ActionResult FacebookCallbackLogin(string code) { try { var fb = new Facebook.FacebookClient(); dynamic result = fb.Post("oauth/access_token", new { client_id = "510735142346763", client_secret = "c4df6a6934bc013daa1560bd063921b0", redirect_uri = RedirectUri.AbsoluteUri, code = code }); var accessToken = result.access_token; // Store the access token in the session Session["AccessToken"] = accessToken; // update the facebook client with the access token so // we can make requests on behalf of the user fb.AccessToken = accessToken; // Get the user's information dynamic me = fb.Get("me?fields=first_name,last_name,id,email,gender,username"); GetSingleMemberResponse model = _member.GetSingleByFacebookId(me.id); if (model.Code == "-1" && model.Code.Contains("No member")) { MemberEditResponse data = _member.CreateMember(me.first_name, me.last_name, me.email, me.username, me.username, null, me.gender == "male", null, null, null, me.locale, me.id); if (data.Code == "-1" && data.Message.Contains("Username")) data = _member.CreateMember(me.first_name, me.last_name, me.email, me.username, null, null, me.gender == "male", null, null, null, me.locale, me.id); else if (data.Code == "-1") { return RedirectToAction("SignUp"); } if (data.Code == "-1") { return RedirectToAction("SignUp"); } } SessionManager.IsLoggedIn = true; SessionManager.UserLogged = new UserProfile { FacebookId = model.Member.MemberFacebookId, FirstName = model.Member.MemberFirstName, LastName = model.Member.MemberLastName, UserName = model.Member.MemberUserName, UserId = model.Member.MemberId }; return RedirectToAction("Index", "Home"); } catch (Exception ex) { Logger.Error(ex.Message); return RedirectToAction("Index", "Home"); } }
private void fbLogin(HttpContext context) { string token = context.Request.Params["token"]; Facebook.FacebookClient client = new Facebook.FacebookClient(token); //client.Post() client.UseFacebookBeta = client.IsSecureConnection = true; Facebook.JsonObject o = (Facebook.JsonObject)client.Get("/me"); var db = new PetaPoco.Database(Common.HairStyleConnectionString, "System.Data.SqlClient"); using (var scope = db.GetTransaction()) { try { string first_name = (string)o["first_name"]; string name = (string)o["name"]; decimal id = Convert.ToDecimal(o["id"]); POCOS.Facebook fb = new POCOS.Facebook(); fb.name = name; fb.first_name = first_name; fb.gender = (string)o["gender"]; fb.id = id; fb.last_name = (string)o["last_name"]; fb.link = (string)o["link"]; fb.locale = (string)o["locale"]; fb.timezone = Convert.ToDouble(o["timezone"]); string updatedtime = (string)o["updated_time"]; DateTime dt; if (DateTime.TryParse(updatedtime, out dt)) fb.updated_time = dt; if (db.Exists<POCOS.Facebook>(id)) db.Update(fb); else db.Insert(fb); POCOS.AppUser au = POCOS.AppUser.FirstOrDefault("Select top 1 * from AppUsers where facebookid=@0", id); if (au == null) { au = new POCOS.AppUser(); au.FirstName = first_name; au.facebookid = id; db.Insert(au); } scope.Complete(); CookieUtil.WriteCookie(Common.AuthCookie, EncDec.Encrypt(JsonConvert.SerializeObject(new { ID = au.ID }), Common.DefaultPassword), false); CookieUtil.WriteCookie(Common.InfoCookie, JsonConvert.SerializeObject(new { email = au.Email, name = au.Name, avatar = string.IsNullOrWhiteSpace(au.Avatar) ? null : Common.UploadedImageRelPath + au.Avatar }), false); } finally { scope.Dispose(); } } }
public ActionResult RegisterFacebook(RegisterFacebookModel model) { if (!ModelState.IsValid || Members.IsLoggedIn() || string.IsNullOrEmpty(model.Email)) { return(PartialView("Profile/RegisterFacebook", model)); } var memberService = Services.MemberService; var checkMemberEmail = Services.MemberService.GetByEmail(model.Email); if (checkMemberEmail != null) { ModelState.AddModelError("FormGenericError", "The email already in use!"); return(PartialView("Profile/RegisterFacebook", model)); } // check if username unique if (Services.MemberService.GetByUsername(model.Username.Trim().ToLower()) != null) { ModelState.AddModelError("FormGenericError", "Το username χρησιμοποιείται ήδη από άλλο μέλος, επιλέξτε ένα άλλο."); return(PartialView("Profile/RegisterFacebook", model)); } // last check FB var client = new Facebook.FacebookClient(model.AccessToken); if (client != null) { var userDetail = client.Get("/me", new { fields = "last_name,id,email,name,birthday,age_range,middle_name,first_name,locale,verified" }); if (userDetail != null) { var loginDetail = new FacebookLoginDetail(JObject.FromObject(userDetail), model.AccessToken); if (loginDetail == null || loginDetail.UserId != model.FacebookUserId) { ModelState.AddModelError("FormGenericError", "Κάντε Login στο Facebook με τον δικό σας λογαριασμό και ξαναδοκιμάστε!"); return(PartialView("Profile/RegisterFacebook", model)); } if (loginDetail == null #if !DEBUG || !loginDetail.IsFacebookVerified #endif ) { ModelState.AddModelError("FormGenericError", "Πρέπει να έχετε επιβεβαιώση τον λογαριασμό σας στο Facebook ώστε να κάνετε την εγγραφή σας."); return(PartialView("Profile/RegisterFacebook", model)); } if (string.Compare(loginDetail.Username, model.Username, true) != 0 && string.Compare(loginDetail.Email, model.Email, true) != 0) { ModelState.AddModelError("FormGenericError", "Μπορείτε να αλλάξετε μόνο είτε το email σας, είτε το username σας όταν κάνετε εγγραφή μέσω Facebook."); return(PartialView("Profile/RegisterFacebook", model)); } // assign correct userid. model.FacebookUserId = loginDetail.UserId; } } else { // could not logon server side ModelState.AddModelError("FormGenericError", "Παρακάλω κάντε login στο Facebook πρώτα ώστε να προχωρήσετε με την εγγραφή σας στο site."); return(PartialView("Profile/RegisterFacebook", model)); } // check if user exists as a facebook user already. if (!string.IsNullOrEmpty(model.FacebookUserId)) { var existingMember = Services.MemberService.GetMembersByPropertyValue("facebookUserId", model.FacebookUserId).FirstOrDefault(); if (existingMember != null && existingMember.IsApproved) { // log him in. Members.Login(existingMember.Username, model.FacebookUserId); return(RedirectToCurrentUmbracoPage()); } } // all good!, create the member try { var curPage = Umbraco.TypedContent(model.Cpid); var culture = curPage.GetCulture(); var newMember = memberService.CreateMember(model.Username.Trim(), model.Email.Trim(), $"{model.Surname.Trim()} {model.Name.Trim()}", Constants.MemberAlias); if (newMember == null) { ModelState.AddModelError("FormGenericError", "Κάποιο σοβαρό σφάλμα προεκυψε. Προσπαθήστε ξανά!"); LogHelper.Warn(typeof(AuthSurfaceController), $"Cannot create new Facebook member: {model.Email}"); return(PartialView("Profile/RegisterFacebook", model)); } // Membership properties newMember.SetValue("emailVerifyHash", "ok"); newMember.SetValue("hasVerifiedEmail", true); newMember.IsApproved = true; newMember.SetValue("facebookUserId", model.FacebookUserId); newMember.SetValue("memberisOver18", true); Services.MemberService.Save(newMember); Services.MemberService.SavePassword(newMember, model.FacebookUserId); // assign member to group in order to see profile page var memberRoles = Services.MemberService.GetAllRoles(newMember.Id); if (!memberRoles.Any(z => string.Compare(z, Constants.VerifiedMemberGroup, true) == 0)) { Services.MemberService.AssignRole(newMember.Id, Constants.VerifiedMemberGroup); } //Services.MemberService.Save(newMember); if (!Members.Login(newMember.Username, model.FacebookUserId)) { ModelState.AddModelError("FormGenericError", "Συνέβη κάποιο σοβαρό σφάλμα. Παρακαλώ προσπαθήστε ξάνα."); LogHelper.Warn(typeof(AuthSurfaceController), $"Cannot Login Facebook new member: {model.Email}"); return(PartialView("Profile/RegisterFacebook", model)); } return(GetLoggedInMember(newMember.Name, newMember.Id, curPage.Id.ToString(), Umbraco)); } catch (Exception ex) { LogHelper.Error(typeof(AuthSurfaceController), $"Error while registering Facebook member {model.Email}", ex); ModelState.AddModelError("FormGenericError", "Συνέβη κάποιο σοβαρό σφάλμα. Παρακαλώ προσπαθήστε ξάνα. Αλλιώς επικοινωνήστε με το support μας."); return(PartialView("Profile/RegisterFacebook", model)); } }
public async Task<ActionResult> FacebookInfo() { var claimsforUser = UserManager.GetClaims(User.Identity.GetUserId()); var access_token = claimsforUser.FirstOrDefault(x => x.Type == "FacebookAccessToken").Value; var fb = new Facebook.FacebookClient(access_token); dynamic myInfo = fb.Get("/me"); //Ex. dynamic myFeed = fb.Get("/me/feed"); dynamic myPicture = fb.Get(string.Format("/me/picture?redirect=0&height=200&type=normal&width=200", myInfo["id"])); //Add the facebook info to the viewmodel and return var meInfo = new FacebookMeInfo() { Name = string.Format("{0} {1}", myInfo["first_name"], myInfo["last_name"]), Locale = myInfo["locale"], UpdatedTime = myInfo["updated_time"], PictureUrl = myPicture["data"]["url"] }; return View(meInfo); }
public static string Fetch(string userId) { var facebookClient = new Facebook.FacebookClient(); facebookClient.AccessToken = AccessToken; return facebookClient.Get(userId).ToString(); }
public ActionResult ExternalLoginCallback(string returnUrl) { var externalLoginModel = new ExternalLoginModel(); var result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl })); if (!result.IsSuccessful) { return RedirectToAction("ExternalLoginFailure"); } if (OAuthWebSecurity.Login(result.Provider, result.ProviderUserId, false)) { //ModelState.AddModelError("", "This external account is already associated with your account."); return RedirectToLocal(returnUrl); } switch (result.Provider) { case "facebook": externalLoginModel.UserName = result.UserName; externalLoginModel.DisplayName = result.ExtraData["name"]; if (result.ExtraData.Keys.Contains("accesstoken")) { var facebookClient = new Facebook.FacebookClient(result.ExtraData["accesstoken"]); dynamic response = facebookClient.Get("me", new { fields = "verified" }); externalLoginModel.FbVerified = response.ContainsKey("verified") && response["verified"]; } break; case "twitter": externalLoginModel.UserName = ""; externalLoginModel.DisplayName = result.UserName; if (result.ExtraData.Keys.Contains("accesstoken") && result.ExtraData.Keys.Contains("accesssecret")) { var twitterClient = new Twitter(ConfigurationManager.AppSettings["TwitterConsumerKey"], ConfigurationManager.AppSettings["TwitterConsumerSecret"], result.ExtraData["accesstoken"], result.ExtraData["accesssecret"]); externalLoginModel.TwitterVerified = twitterClient.VerifyCredentials(); } break; case "google": externalLoginModel.UserName = result.UserName; externalLoginModel.DisplayName = result.UserName; break; default: externalLoginModel.UserName = ""; externalLoginModel.DisplayName = ""; break; } if (User.Identity.IsAuthenticated) { if (ModelState.IsValid) { var user = _userRepository.Find(x => x.UserName.ToLower() == User.Identity.Name.ToLower()); if (user != null) { if (externalLoginModel.FbVerified) { user.FbVerified = true; } if (externalLoginModel.TwitterVerified) { user.TwitterVerified = true; } using (var uow = new UnitOfWork()) { using (_userRepository = new GenericRepository<UserProfile>(uow)) { _userRepository.Update(user); } uow.Save(); } } } // If the current user is logged in add the new account OAuthWebSecurity.CreateOrUpdateAccount(result.Provider, result.ProviderUserId, User.Identity.Name); return RedirectToLocal(returnUrl); } // User is new, ask for their desired membership name var loginData = OAuthWebSecurity.SerializeProviderUserId(result.Provider, result.ProviderUserId); ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(result.Provider).DisplayName; ViewBag.ReturnUrl = returnUrl; return View("ExternalLoginConfirmation", new RegisterExternalLoginModel { UserName = externalLoginModel.UserName, ExternalLoginData = loginData, DisplayName = externalLoginModel.DisplayName, FbVerified = externalLoginModel.FbVerified, TwitterVerified = externalLoginModel.TwitterVerified}); }
public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl) { string provider = null; string providerUserId = null; if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId)) { return RedirectToAction("Manage"); } if (ModelState.IsValid) { // Insert a new user into the database using (mobLibraryEntities db = new mobLibraryEntities()) { USUARIO user = db.USUARIO.FirstOrDefault(u => u.USERNAME.ToLower() == model.UserName.ToLower()); // Check if user already exists if (user == null) { // Insert name into the profile table USUARIO u = new USUARIO(); var client = new Facebook.FacebookClient(Session["facebooktoken"].ToString()); dynamic response = client.Get("me", new { fields = "first_name,last_name,birthday,username,email,locale" }); u.NOMBRE = response["first_name"]; u.APELLIDO1 = ( (string)response["last_name"] ).Split(' ').ElementAt(0); u.APELLIDO2 = ( (string)response["last_name"] ).Split(' ').ElementAt(1); //string fecha = (string)response["birthday"]; //int mes = Int32.Parse(fecha.Split('-').ElementAt(0)); //int dia = Int32.Parse(fecha.Split('-').ElementAt(1)); //int anio = Int32.Parse(fecha.Split('-').ElementAt(2)); //u.FECHA_NACIMIENTO = new DateTime(anio,mes,dia); //u.DIRECCION = response["location"]; u.EMAIL = response["email"]; u.USERNAME = response["username"]; //Generos favoritos db.USUARIO.Add(u); db.SaveChanges(); OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, u.USERNAME); OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false); return RedirectToLocal(returnUrl); } else { ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name."); } } } ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName; ViewBag.ReturnUrl = returnUrl; return View(model); }