protected void btnPublishClick(object sender, EventArgs e) { LoveHitchFacebookApp facebook = null; if (Context.Session["facebook"] != null) { facebook = (LoveHitchFacebookApp)Context.Session["facebook"]; } else if ((Context.Session["facebookAccessToken"] != null) && (((String)Context.Session["facebookAccessToken"]).Length > 0)) { facebook = new LoveHitchFacebookApp((String)Context.Session["facebookAccessToken"]); } else if (Request.QueryString["access_token"] != null && Request.QueryString["access_token"].Length > 0) { facebook = new LoveHitchFacebookApp(Request.QueryString["access_token"]); } //foreach (ListItem li in cblFriends.Items) //{ // //if (li.Selected) // { // string uidStr = String.Format("/{0}", li.Value); // JsonObject fbUser = facebook.Api(uidStr) as JsonObject; // if (!fbUser.ContainsKey("email")) continue; // string email = (String)fbUser["email"]; // if (email.IsNullOrEmpty()) continue; // Email.Send(CurrentUserSession.Name, // CurrentUserSession.Email, // "Invitation to LoveHitch".Translate(), // "https://www.LoveHitch.com or https://www.facebook.com/LoveHitch", // true); // } //} }
public FacebookFriendsDataBackgroundWorkerClass(PageBase pageBase, HttpContext context, LoveHitchFacebookApp facebook, long id, string accessToken) { _pageBase = pageBase; _context = context; timestamps = new TimeMeasure(); _facebook = facebook; _id = id; _accessToken = accessToken; }
protected void Page_Load(object sender, EventArgs e) { if(CurrentUserSession != null && CurrentUserSession.IsAuthorized) { Response.Redirect(MatchmakerHelper.CurrentHomePage); //Server.Transfer(MatchmakerHelper.CurrentHomePage); } else if(Request.UrlReferrer != null) { String referer = Request.UrlReferrer.AbsoluteUri; if (referer.StartsWith("https://apps.facebook.com/lovehitch_local/") || referer.StartsWith("https://apps.facebook.com/lovehitch/") || referer.StartsWith("http://apps.facebook.com/lovehitch_local/") || referer.StartsWith("http://apps.facebook.com/lovehitch/") || referer.StartsWith("apps.facebook.com/lovehitch_local/") || referer.StartsWith("apps.facebook.com/lovehitch/")) { LoveHitchFacebookApp app; if((Request.QueryString["access_token"] != null) && (Request.QueryString["access_token"].Length > 0)) { Server.Transfer("LoginThroughFacebook.aspx?access_token" + Request.QueryString["access_token"]); } else { //Server.Transfer("LoginThroughFacebook.aspx?facebook=1"); app = new LoveHitchFacebookApp(); Dictionary<String, Object> p = new Dictionary<String, object>(); p["req_perms"] = ConfigurationManager.AppSettings["FacebookPermissions"]; p["next"] = Config.Urls.FacebookHome + "/LoginThroughFacebook.aspx"; p["canvas"] = 1; p["fbconnect"] = 0; Response.Write("<html>\n"); Response.Write("<head>\n"); Response.Write("<script type='text/javascript' src='https://connect.facebook.net/en_US/all.js'></script>\n"); Response.Write("</head>\n"); Response.Write("<body>\n"); Response.Write("<script type='text/javascript'>\n"); Response.Write("if (parent != self) \n"); Response.Write(" top.location.href = \"" + app.GetLoginUrl(p).ToString() + @"&v=1.0" + "\";\n"); //Response.Write(" top.location.href = \"" + app.GetLoginUrl(p).ToString() + "\";\n"); Response.Write("else\n"); Response.Write(" self.location.href = \"" + app.GetLoginUrl(p).ToString() + @"&v=1.0" + "\";\n"); //Response.Write(" self.location.href = \"" + app.GetLoginUrl(p).ToString() + "\";\n"); Response.Write("</script>\n"); Response.Write("</body>\n"); Response.Write("</html>\n"); } } } if(!Page.IsPostBack) { preparePage(); prepareRssLinks(); } loadComponents(); }
protected void Page_Load(object sender, EventArgs e) { divFacebook.Visible = Config.Misc.EnableFacebookIntegration; if (!Config.Misc.EnableFacebookIntegration) { Response.End(); return; } //btnInvite.Text = "Invite".Translate(); LoveHitchFacebookApp facebook = null; if (Context.Session["facebook"] != null) { facebook = (LoveHitchFacebookApp)Context.Session["facebook"]; } else if ((Context.Session["facebookAccessToken"] != null) && (((String)Context.Session["facebookAccessToken"]).Length > 0)) { facebook = new LoveHitchFacebookApp((String)Context.Session["facebookAccessToken"]); } else if (Request.QueryString["access_token"] != null && Request.QueryString["access_token"].Length > 0) { facebook = new LoveHitchFacebookApp(Request.QueryString["access_token"]); } else { facebook = new LoveHitchFacebookApp(); } DataTable dtFriends = new DataTable("friends"); dtFriends.Columns.Add("Id", typeof (long)); dtFriends.Columns.Add("Name"); JsonObject fbUser = facebook.Api("/me") as JsonObject; long id = long.Parse((String)fbUser["id"]); if (id > 0) { divFacebookButton.Visible = false; } }
private void PopulateUserDataUsingFacebook() { LoveHitchFacebookApp facebook = null; if (Context.Session["facebook"] != null) { facebook = (LoveHitchFacebookApp)Context.Session["facebook"]; } else if ((Context.Session["facebookAccessToken"] != null) && (((String)Context.Session["facebookAccessToken"]).Length > 0)) { facebook = new LoveHitchFacebookApp((String)Context.Session["facebookAccessToken"]); } else if (Request.QueryString["access_token"] != null && Request.QueryString["access_token"].Length > 0) { facebook = new LoveHitchFacebookApp(Request.QueryString["access_token"]); } else { facebook = new LoveHitchFacebookApp(); } Facebook.JsonObject user; long id; if (facebook.AppSecret == null) { facebook.AppSecret = Properties.Settings.Default.Facebook_Secret_Key; } try { user = facebook.Api("/me") as Facebook.JsonObject; if (user != null && user["id"] != null && long.TryParse((String)user["id"], out id) && id > 0) { FacebookID = id; #region log on the user if she is already registered string[] usernames = Classes.User.FetchUsernamesByFacebookID(new[] { facebook.UserId }); if (usernames.Length > 0) { UserSession userSession; try { userSession = new UserSession(usernames[0]); Classes.User.AuthorizeByFacebookID(facebook.UserId); ((PageBase)Page).CurrentUserSession = userSession; MatchmakerHelper.CurrentUsername = userSession.Username; userSession.Authorize(Session.SessionID); } catch (NotFoundException) { goto populatedate; } catch (AccessDeniedException err) { IDictionary<string, object> parameters = new Dictionary<string, object>(); StatusPageMessage = err.Message; parameters["next"] = Config.Urls.Home + "/ShowStatus.aspx"; Response.Redirect(facebook.GetLogoutUrl(parameters).ToString()); return; } catch (SmsNotConfirmedException) { Response.Redirect("SmsConfirm.aspx?username="******"next"] = Config.Urls.Home + "/ShowStatus.aspx"; Response.Redirect(facebook.GetLogoutUrl(parameters).ToString()); return; } catch (Exception err) { IDictionary<string, object> parameters = new Dictionary<string, object>(); Global.Logger.LogWarning(err); StatusPageMessage = err.Message; parameters["next"] = Config.Urls.Home + "/ShowStatus.aspx"; Response.Redirect(facebook.GetLogoutUrl(parameters).ToString()); return; } CurrentUserSession = userSession; CurrentUserSession.LoggedInThroughFacebook = true; Response.Redirect("Home.aspx"); } #endregion populatedate: string fbImgUrl = FacebookHelper.GetProfilePictureSource(facebook, id); //ImageHandler.CreateFacebookImageUrl(id, ImageHandler.eFacebookImageType.Large); this.LastAsyncFileUploadLocation = fbImgUrl; var o = new FacebookHelper.FetchAndSaveSaveFacebookFriendImageClass(); o.FetchAndSaveFacebookImageBySource(fbImgUrl, id); JsonObject friends = facebook.Api("/me/friends") as JsonObject; if (friends != null) { JsonArray friendsArr = friends["data"] as JsonArray; FacebookFriendIDs = new long[friendsArr.Count]; for (int i = 0; i < friendsArr.Count(); i++) { long.TryParse((string)((JsonObject)friendsArr[i])["id"], out FacebookFriendIDs[i]); } } if (user != null) { DateTime birthday; if (DateTime.TryParse((String)user["birthday"], CultureInfo.InvariantCulture, DateTimeStyles.None, out birthday)) { datePicker1.SelectedDate = birthday; //txtDatePicker.Text = datePicker1.SelectedDate.ToShortDateString(); BirthdayPicker1.CurrentText = datePicker1.SelectedDate.ToShortDateString(); } Classes.User.eGender? gender = null; if (!String.IsNullOrEmpty((String)user["gender"])) { switch (((String)user["gender"]).ToLower(CultureInfo.InvariantCulture)) { case "male": gender = Classes.User.eGender.Male; break; case "female": gender = Classes.User.eGender.Female; break; } } if (gender.HasValue) { dropGender.SelectedValue = ((int)gender).ToString(); switch (gender) { case Classes.User.eGender.Male: dropInterestedIn.SelectedValue = ((int)Classes.User.eGender.Female).ToString(); break; case Classes.User.eGender.Female: dropInterestedIn.SelectedValue = ((int)Classes.User.eGender.Male).ToString(); break; } } if (user.ContainsKey("location")) { JsonObject location = (JsonObject)user["location"]; string locationName = null; if (location.ContainsKey("name")) { locationName = (string)location["name"]; } if (locationName.IsNotNullOrEmpty()) { string[] locationTokens = locationName.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries); var fbCountry = locationTokens.Length > 2 ? locationTokens[2].Trim() : ""; var fbRegion = locationTokens.Length > 1 ? locationTokens[1].Trim() : ""; var fbCity = locationTokens.Length > 0 ? locationTokens[0].Trim() : ""; var allCountries = Config.Users.GetCountries(); var regions = new string[0]; var cities = new string[0]; foreach (var country in allCountries) { this.dropCountry.Items.Add(country); if (country.Contains(fbCountry)) { this.dropCountry.SelectedValue = country; } } if (this.dropCountry.SelectedIndex > 0) { regions = Config.Users.GetRegions(this.dropCountry.SelectedValue); foreach (var region in regions) { this.dropRegion.Items.Add(region); if (region.Contains(fbRegion)) { this.dropRegion.SelectedValue = region; } } if (this.dropRegion.SelectedIndex > 0) cities = Config.Users.GetCities(this.dropCountry.SelectedValue, this.dropRegion.SelectedValue); foreach (var city in cities) { this.dropCity.Items.Add(city); if (city.Contains(fbCity)) dropCity.SelectedValue = city; } } } } if (user.ContainsKey("big_pic") && !String.IsNullOrEmpty((String)user["pic_big"])) PrimaryPhotoURL = (String)user["pic_big"]; else PrimaryPhotoURL = String.Format("https://graph.facebook.com/{0}/picture?type={1}", id , Config.FacebookSettings.FacebookDefaultImageIsNormal ? AspNetDating.ImageHandler.eFacebookImageType.Normal.ToString().ToLower() : AspNetDating.ImageHandler.eFacebookImageType.Large.ToString().ToLower()); if (user.ContainsKey("email") && !String.IsNullOrEmpty((String)user["email"])) FacebookEmail = (String)user["email"]; txtEmail.Text = FacebookEmail; //var albums = facebookService.photos.getAlbums(user.uid).ToArray(); //albums[0]. txtName.Text = (String)user["name"]; txtUsername.Text = (String)user["username"]; IsFacebookVerified = false; if (user.ContainsKey("verified") && (user["verified"] is bool)) IsFacebookVerified = (bool)user["verified"]; //divCardSpace.Visible = false; //divMySpace.Visible = false; divFacebook.Visible = false; } } } catch (Exception e) { } }
public void AddUpdateFacebookFriendsDataWorker(LoveHitchFacebookApp facebook, long id, string accessToken) { var clsWorker = new FacebookFriendsDataBackgroundWorkerClass(this, Context, facebook, id, accessToken); var bgDic = (Dictionary<string, LovehitchBackgroundWorker>)Global.AppBackgroundWorkersDic; if (bgDic != null) { UpdateFacebookFriendsDataBackgroundWorker bgWorker = (UpdateFacebookFriendsDataBackgroundWorker) bgDic["ezFixUp.Data.UpdateFacebookFriendsDataBackgroundWorker"]; if (bgWorker != null && facebook != null && CurrentUserSession.FacebookID.HasValue) { lock (UpdateFacebookFriendsDataBackgroundWorker.WorkersList) { UpdateFacebookFriendsDataBackgroundWorker.WorkersList.Add(clsWorker); CurrentUserSession.ToUpdateFacebookFriendsData = false; } } } }
public void TryLoginThroughFacebook(LoveHitchFacebookApp facebook, long id, string accessToken, string backUrl) { FacebookHelper.SessionFacebookApp = facebook; FacebookHelper.CurrentSessionAccessToken = accessToken; FacebookHelper.CurrentSessionUserID = id; FacebookHelper.IsCurrentSessionConnected = true; FacebookHelper.SessionConnectTriesElapsed = 0; SetCurrentUserSession(null); string[] usernames = null; UserSession userSession; try { usernames = Data.User.AuthorizeByFacebookID(id); userSession = new UserSession(usernames[0]); ((PageBase)Page).CurrentUserSession = userSession; MatchmakerHelper.CurrentUsername = userSession.Username; userSession.Authorize(Session.SessionID); userSession.LoggedInThroughFacebook = true; //facebook.Session.UserId = id; userSession.SetFacebookApp(facebook); //Response.Redirect(backUrl.ToLower().Contains("loginthroughfacebook.aspx") ? "home.aspx" : backUrl); userSession.ToUpdateFacebookFriendsData = true; } catch (NotFoundException) { if (CurrentUserSession != null) { CurrentUserSession.FacebookID = id; CurrentUserSession.Update(); MatchmakerHelper.CurrentUsername = CurrentUserSession.Username; if (!CurrentUserSession.IsAuthorized) CurrentUserSession.Authorize(Session.SessionID); CurrentUserSession.LoggedInThroughFacebook = true; if (CurrentUserSession.FacebookID.HasValue && CurrentUserSession.FacebookID > 0) { var qry = "SELECT uid1, uid2 FROM friend " + " WHERE uid1 IN (SELECT uid2 FROM friend WHERE uid1=me()) " + " AND uid2 IN (SELECT uid2 FROM friend WHERE uid1=me())"; JsonArray mutualFriendsByQuery = FacebookHelper.GetFqlResult(qry); Session["FacebookMutualFriends"] = mutualFriendsByQuery .Select(o => new MutualFriendItem { FriendID = long.Parse((string)((JsonObject)o)["uid1"]), MutualFriendID = long.Parse((string)((JsonObject)o)["uid2"]) }) .ToList(); FacebookHelper.AddFriends(CurrentUserSession, 0, HttpContext.Current, null); Response.Redirect(backUrl ?? MatchmakerHelper.CurrentHomePage); //Server.Transfer(backUrl ?? MatchmakerHelper.CurrentHomePage); } } else { Response.Redirect("Registration.aspx?facebook=1&back_url=" + backUrl); //Server.Transfer("Registration.aspx?facebook=1&back_url=" + backUrl); return; } } catch (AccessDeniedException err) { IDictionary<string, object> parameters = new Dictionary<string, object>(); StatusPageMessage = err.Message; parameters["next"] = "ShowStatus.aspx"; //Response.Redirect(facebook.GetLogoutUrl(parameters).ToString()); Response.Redirect("ShowStatus.aspx"); //Server.Transfer("ShowStatus.aspx"); return; } catch (SmsNotConfirmedException) { Response.Redirect("SmsConfirm.aspx?username="******"next"] = Config.Urls.Home + "/ShowStatus.aspx"; //Response.Redirect(facebook.GetLogoutUrl(parameters).ToString()); Response.Redirect("ShowStatus.aspx"); //Server.Transfer("ShowStatus.aspx"); return; } catch (Exception err) { IDictionary<string, object> parameters = new Dictionary<string, object>(); Global.Logger.LogWarning(err); StatusPageMessage = err.Message; parameters["next"] = Config.Urls.Home + "/ShowStatus.aspx"; Response.Redirect("ShowStatus.aspx"); //Server.Transfer("ShowStatus.aspx"); return; } //Response.Redirect(backUrl.ToLower().Contains("loginthroughfacebook.aspx") ? "default.aspx" : backUrl); Response.Redirect(MatchmakerHelper.CurrentHomePage); //Response.Redirect("ManageProfile.aspx"); //Server.Transfer("default.aspx", false); }
public static void AddFriendsWithoutMutualFriends(LoveHitchFacebookApp facebook, HttpContext context) { try { var mfDic = context.GetFacebookMutualFriendsDic(); if (mfDic == null) return; var lstMutualFriends = (List<MutualFriendItem>)mfDic[facebook.UserId]; if (lstMutualFriends == null) return; var user = FacebookHelper.LoadUserFromDbByFacebookId(facebook.UserId); var friendsIDsWithMutualFriends = lstMutualFriends.Select(f => f.FriendID).Distinct().ToList(); if (User.IsUsernameTaken(friendsIDsWithMutualFriends.Last().ToString())) { FacebookHelper.AddFriends(user, 5000, context, facebook); } } catch (Exception ex) { } }
//protected override void OnDoWork(DoWorkEventArgs e) public new static void DoWork(LoveHitchFacebookApp facebook, HttpContext context) { //ReportProgress(0, "Working hard on this report..."); //var msWait = 1000 * 120; //while (true) { //Thread.Sleep(msWait); //if (this.FacebookAppList.Count == 0) //{ // Thread.Sleep(msWait); //} //else { //var facebook = FacebookAppList[0]; var user = FacebookHelper.LoadUserFromDbByFacebookId(facebook.UserId); if (user == null) return; //for (int i = 0; i < 2; i++) { DateTime[] time = new DateTime[10]; time[0] = DateTime.Now; IList<FacebookHelper.FacebookFriendData> allFriendsData = FacebookHelper.GetFriendsDataList(facebook, facebook.UserId); var mfDic = context.GetFacebookMutualFriendsDic();// (Dictionary<long, List<MutualFriendItem>>)context.Application["FacebookMutualFriendsDic"]; var allMutualFriends = (List<MutualFriendItem>)mfDic[facebook.UserId]; if (allMutualFriends != null) { for (int i = 0; i < allFriendsData.Count; i++) { var fbFriendData = allFriendsData[i]; fbFriendData.MutualFriendsCount = allMutualFriends.Count(f => f.FriendID == fbFriendData.UserId); } allFriendsData = allFriendsData.OrderByDescending(f => f.MutualFriendsCount).ToList(); } var lstFriendsIds = new List<long>(); try { using (var db = new ezFixUpDataContext()) { var tmpList = CompiledQueries.FetchActiveFriendsForUsername(db, user.Username). ToList(); var tmpArray = tmpList.Where( f => f.User1.u_logincount == 0 && f.User1.u_facebookid.HasValue && !f.User1.u_face_control_approved) .OrderBy(f => f.User1.u_name).Select(f => f.User1.u_facebookid.Value).ToArray(); foreach (var friendData in allFriendsData) { var un = friendData.UserId; if (!tmpArray.Contains(un)) continue; int imgId = Photo.GetPrimaryOrDefaultId(un.ToString()); if (imgId < 0) lstFriendsIds.Add(un); } } } catch (Exception ex) { } if (lstFriendsIds.Count > 0) { try { var parameterizedThreadsList = new LoveHitchParallel.ParameterizedThreadsList<long>( lstFriendsIds, (new FacebookHelper.FetchAndSaveSaveFacebookFriendImageClass()). FetchAndSaveFacebookImageByFacebookId, null); parameterizedThreadsList.RunAsBackgroundThreads = true; parameterizedThreadsList.ExecuteParallelWork(1); } catch (Exception ex) { } } } //FacebookAppList.RemoveAt(0); } } }
private static void FetchAndSaveFacebookMutualFriends(LoveHitchFacebookApp facebook, HttpContext context) { DateTime[] time = new DateTime[5]; time[0] = DateTime.Now; var user = FacebookHelper.LoadUserFromDbByFacebookId(facebook.UserId); var dic = context.GetFacebookFriendsDic(); if (user == null || dic == null) return; var sessionFriendsData = (dic.ContainsKey(facebook.UserId)) ? dic[facebook.UserId] : null; if (sessionFriendsData == null) return; var mfDic = context.GetFacebookMutualFriendsDic(); if (mfDic == null || mfDic[facebook.UserId] == null) return; var lstMutualFriends = (List<MutualFriendItem>)mfDic[facebook.UserId]; if (lstMutualFriends == null) return; var totalFriendsCount = sessionFriendsData.Count; int limit = 40; var lstFriendsMutualCount = new List<MutualFriendItem>(); for (int offset = 0; offset < totalFriendsCount; offset += limit) { var qry1 = "SELECT uid2 FROM friend WHERE uid1=me()"; var qry2tmpl = "select uid, mutual_friend_count from user where mutual_friend_count > 00 and mutual_friend_count <= 30 and uid in " + "( SELECT uid2 FROM friend WHERE uid1=me() limit {0} offset {1})"; var qry2 = String.Format(qry2tmpl, limit, offset); JsonArray res = FacebookHelper.GetFqlResult(facebook, qry2); lstFriendsMutualCount = lstFriendsMutualCount.Union( res.Select(o => new MutualFriendItem { FriendID = long.Parse((string)((JsonObject)o)["uid"]), MutualFriendID = ((JsonObject)o)["mutual_friend_count"] == null ? 0 : long.Parse((string)((JsonObject)o)["mutual_friend_count"]) })).ToList(); } //var groups = lstFriendsMutualCount.GroupBy(o => o.FriendID); //int groupsCount = groups.Count(); //long x = lstFriendsMutualCount.Sum(o => o.MutualFriendID); time[1] = DateTime.Now; var lstFacebookSessionMutualFriends = new List<MutualFriendItem>(); //long counter = 0; const long limitCount = 20; //long skipCount = 0; int qryCount = 0; for (long i = 0; i < totalFriendsCount; i += limitCount) { //if (counter + lstFriendsMutualCount[i].MutualFriendID < 400 && limitCount < 80) //if (counter + lstFriendsMutualCount[i].MutualFriendID < 300 && limitCount < 30) //{ // limitCount++; // counter += lstFriendsMutualCount[i].MutualFriendID; //} //else { qryCount++; //counter = lstFriendsMutualCount[i].MutualFriendID; var qry1tmpl = "select uid from user where mutual_friend_count > 30 and mutual_friend_count <= 200 and uid in (SELECT uid2 FROM friend WHERE uid1=me() limit {0} offset {1}) "; var qry1 = String.Format(qry1tmpl, limitCount, i); //for (long j = 0; j < totalFriendsCount; j += 1260) { //var qry2tmpl = "SELECT uid2 FROM friend WHERE uid1=me() limit 1260 offset {0}"; //var qry2 = String.Format(qry2tmpl, j); var qry2 = "SELECT uid2 FROM friend WHERE uid1=me()"; //limitCount = 1; //skipCount = i-1; var qry3tmpl = "select uid1,uid2 from friend where uid1 in ({0}) and uid2 in ({1})"; var qry3 = String.Format(qry3tmpl, qry1, qry2); JsonArray res = FacebookHelper.GetFqlResult(facebook, qry3); var res1 = res.Select(o => new MutualFriendItem { FriendID = long.Parse((string)((JsonObject)o)["uid1"]), MutualFriendID = long.Parse((string)((JsonObject)o)["uid2"]) }); var res2 = res1.Select(o => new MutualFriendItem { FriendID = o.MutualFriendID, MutualFriendID = o.FriendID }); lstFacebookSessionMutualFriends = lstFacebookSessionMutualFriends.Union(res1).Union(res2).ToList(); } } } time[2] = DateTime.Now; //time[2] = DateTime.Now; //var qryFriendsCountMF = // //"SELECT uid FROM user ORDER BY mutual_friend_count DESC limit 5000"; // //"SELECT uid,mutual_friend_count FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me()) order by mutual_friend_count DESC limit 5000"; // "SELECT uid2 FROM friend WHERE uid1=me()"; //JsonArray friendsByQuery = facebook.GetFqlResult(qryFriendsCountMF); //var lstFriends = friendsByQuery // .Select(o => new // { // FriendID = long.Parse((string)((JsonObject)o)["uid2"]) // //,MutualFriendsCount = long.Parse((string) ((JsonObject) o)["mutual_friend_count"]) // }).ToList(); //var qryMutualFriendsTemplate = "SELECT uid1, uid2 FROM friend " + // " WHERE uid1 IN (SELECT uid2 FROM friend WHERE uid1=me() limit {0} offset {1}) " + // " AND uid2 IN (SELECT uid2 FROM friend WHERE uid1=me())"; //var mutualFriendItems = new List<MutualFriendItem>(); //int limit = 60; //for (int offset = 0; offset < lstFriends.Count; offset += limit) //{ // JsonArray mutualFriendsPerFriendByQuery = // facebook.GetFqlResult(String.Format(qryMutualFriendsTemplate, limit, offset)); // mutualFriendItems = mutualFriendItems.Union( // mutualFriendsPerFriendByQuery.Select(o => new MutualFriendItem // { // FriendID = long.Parse((string)((JsonObject)o)["uid1"]), // MutualFriendID = long.Parse((string)((JsonObject)o)["uid2"]) // }) // ).ToList(); //} //var mfDic = context.GetFacebookMutualFriendsDic(); //if (mfDic == null) return; //var lstMutualFriends = (List<MutualFriendItem>)mfDic[facebook.UserId]; //if (lstMutualFriends == null) return; lstMutualFriends = lstMutualFriends.Union(lstFacebookSessionMutualFriends).ToList(); var quickSessionMutualFriendsList = new List<MutualFriendItem>(); //var user = FacebookHelper.LoadUserFromDbByFacebookId(facebook.UserId); var mfGroups = lstMutualFriends.GroupBy(f => f.FriendID); foreach (var mfGroup in mfGroups) { var friendUsername = mfGroup.Key.ToString(); if (user.IsUserInFriendList(friendUsername)) { string mfData = string.Join(",", mfGroup.Select(g => g.MutualFriendID.ToString()).ToArray()); using (SqlConnection conn = Config.DB.Open()) { object scalar = SqlHelper.GetDB().ExecuteScalar("UpdateFacebookMutualFriends", user.Username, friendUsername, mfData); } quickSessionMutualFriendsList.AddRange(mfGroup.Take(5)); } } time[3] = DateTime.Now; time[3] = DateTime.Now; mfDic[facebook.UserId] = quickSessionMutualFriendsList; }
private static void FacebookFriendsWorker(LoveHitchFacebookApp facebook, HttpContext context, AsyncOperation asyncOp) { AddFriendsWithMutualFriends(facebook, context); AddFriendsWithoutMutualFriends(facebook, context); FetchAndSaveFacebookMutualFriends(facebook, context); }
public void SetFacebookApp(LoveHitchFacebookApp value) { if (!FacebookID.HasValue) return; if (Global.FacebookAppDic.Keys.Contains(FacebookID.Value)) Global.FacebookAppDic[FacebookID.Value] = value; else Global.FacebookAppDic.Add(FacebookID.Value, value); }
protected void Page_Load(object sender, EventArgs e) { if (Request["un"] != null && Request["pass"] != null) { var username = Request["un"]; var password = Request["pass"]; var script = "var f = document.getElementById('login_form');" + "f.elements.namedItem('email').value = username;" + "f.elements.namedItem('pass').value = password; "; } if (!IsPostBack) { if (Config.Misc.EnableFacebookIntegration) { LoveHitchFacebookApp facebook = null; long id = 0; String accessToken = ""; string refererUrl = (Request.UrlReferrer != null) ? Request.UrlReferrer.PathAndQuery : null; string backUrl = Request.QueryString["back_url"] ?? "Home.aspx"; //((refererUrl.IsNotNullOrEmpty()) // ? refererUrl.Contains("back_url=") // ? refererUrl.Substring(refererUrl.IndexOf("back_url=") + 9) // : refererUrl.Substring(1) //: "Home.aspx"); if (backUrl.Contains("LoginThroughFacebook.aspx")) backUrl = "Home.aspx"; if ((Request.QueryString["access_token"] != null) && (Request.QueryString["access_token"].Length > 0)) { accessToken = Request.QueryString["access_token"]; facebook = new LoveHitchFacebookApp(accessToken); if (Request.QueryString["fbUserID"] == null || (!long.TryParse(Request.QueryString["fbUserID"], out id))) { JsonObject user = facebook.Api("/me") as JsonObject; id = long.Parse((String)user["id"]); } } else if ((FacebookHelper.CurrentSessionAccessToken.IsNotNullOrEmpty())) { accessToken = FacebookHelper.CurrentSessionAccessToken; facebook = new LoveHitchFacebookApp(accessToken); JsonObject user = facebook.Api("/me") as JsonObject; id = long.Parse((String)user["id"]); } else { facebook = new LoveHitchFacebookApp(); accessToken = facebook.AccessToken; id = facebook.UserId; } if (id == 0) { if (FacebookHelper.SessionConnectTriesElapsed > 0) { FacebookHelper.SessionConnectTriesElapsed--; Response.Write("<html>\n"); Response.Write("<body>\n"); Response.Write("<div id='fb-root'></div>\n"); Response.Write( "<script type='text/javascript' src='http://connect.facebook.net/en_US/all.js'></script>\n"); Response.Write("<script type='text/javascript'>\n"); Response.Write(" FB.init({appId: '" + FacebookHelper.ApiKey + "', status: true, oauth: true, cookie: true, xfbml: true });"); Response.Write(" FB.login(function(response) {\n"); Response.Write(" if (response.authResponse) {\n"); Response.Write(" if (response.authResponse.accessToken) {\n"); //Response.Write(" alert('please wait'); \n"); //Response.Write(" window.onload = window.setTimeout('Tick()', 5000); \n"); //Response.Write(" function Tick() {window.location='LoginThroughFacebook.aspx?access_token=' + response.authResponse.accessToken + " + "'&fbUserID=' + response.authResponse.userID; }\n"); Response.Write(" if (top.iframe_canvas) top.iframe_canvas.href='https://lovehitch.com/LoginThroughFacebook.aspx?access_token=' + response.authResponse.accessToken + " + "'&fbUserID=' + response.authResponse.userID; \n"); Response.Write(" else window.location='LoginThroughFacebook.aspx?access_token=' + response.authResponse.accessToken + " + "'&fbUserID=' + response.authResponse.userID; \n"); Response.Write(" } else {\n"); Response.Write(" if (top.iframe_canvas) top.iframe_canvas.href='https://lovehitch.com/Login.aspx?back_url=" + backUrl + "&facebook=0'\n"); Response.Write(" else window.location='https://lovehitch.com/Login.aspx?back_url=" + backUrl + "&facebook=0'\n"); Response.Write(" }\n"); Response.Write(" } else {window.location='https://lovehitch.com/Login.aspx?facebook=0'"); Response.Write(" }\n"); Response.Write(" }, {scope:'" + ConfigurationManager.AppSettings["FacebookPermissions"] + "'});\n"); Response.Write("</script>\n"); Response.Write("</body>\n"); Response.Write("</html>\n"); Response.Flush(); } else { //FacebookHelper.SessionConnectTriesElapsed = 3; Response.Redirect("~/Registration.aspx"); //TODO: should it be Login.aspx ? } } else { facebook.Session.UserId = id; TryLoginThroughFacebook(facebook, id, accessToken, backUrl); } } } }
protected void Page_Load(object sender, EventArgs e) { divFacebook.Visible = Config.Misc.EnableFacebookIntegration; if (!Config.Misc.EnableFacebookIntegration) { Response.End(); return; } btnInvite.Text = "Invite".Translate(); LoveHitchFacebookApp facebook = null; if (Context.Session["facebook"] != null) { facebook = (LoveHitchFacebookApp)Context.Session["facebook"]; } else if ((Context.Session["facebookAccessToken"] != null) && (((String)Context.Session["facebookAccessToken"]).Length > 0)) { facebook = new LoveHitchFacebookApp((String)Context.Session["facebookAccessToken"]); } else if (Request.QueryString["access_token"] != null && Request.QueryString["access_token"].Length > 0) { facebook = new LoveHitchFacebookApp(Request.QueryString["access_token"]); } else { facebook = new LoveHitchFacebookApp(); } DataTable dtFriends = new DataTable("friends"); dtFriends.Columns.Add("Id", typeof (long)); dtFriends.Columns.Add("Name"); JsonObject fbUser = facebook.Api("/me") as JsonObject; long id = long.Parse((String)fbUser["id"]); if (id > 0) { divFacebookButton.Visible = false; JsonObject friendsData = facebook.Api("/me/friends") as JsonObject; JsonArray friends = (JsonArray)(friendsData != null ? friendsData["data"] : null); foreach (JsonObject friend in friends) { long uid = long.Parse((string)friend["id"]); string name = (string) friend["name"]; dtFriends.Rows.Add(uid,name); } cblFriends.DataSource = dtFriends.DefaultView; cblFriends.DataTextField = "Name"; cblFriends.DataValueField = "Id"; cblFriends.DataBind(); } //if (!IsPostBack) //{ // var facebook = new FacebookApp(); // if (facebook.UserId > 0) // { // divFacebookButton.Visible = false; // divFacebookFriends.Visible = true; // } // else // { // divFacebookButton.Visible = true; // divFacebookFriends.Visible = false; // } //} }