public static void ProcessFacebook(FBPage p) { FacebookClient fbClient = new FacebookClient(p.Token); var lastPost = Accounts.GetLastPost(p.ID); var filterString = "since=" + (lastPost != null ? lastPost.Date: DateTime.Now.AddDays(-1)).ToString("yyyy-MM-ddTHH:mm:sszzz"); dynamic res = fbClient.Get(String.Format("{0}/feed?{1}", p.ForeignID, filterString)); var data = res.data; for (var i = 0; i < ((dynamic)data).Count; i++) { if (!string.IsNullOrEmpty(data[i].message)) { var post = new Post { Text = data[i].message, PageID = p.ID, Date = Convert.ToDateTime(data[i].created_time), Type = (int)AccountType.Facebook, ForeignID = data[i].id, FromUserName = data[i].from.name }; if (BLL.Posts.Get().Where(Posts.Columns.ForeignID, Actions.Equal, post.ForeignID).SelectOne() != null) return; ProcessPost(post); post.Insert(); } } }
public static void ProcessFacebook(FBPage p) { FacebookClient fbClient = new FacebookClient(p.Token); var lastPost = Accounts.GetLastPost(p.ID); var filterString = lastPost != null? "since=" + lastPost.Date.ToString("MM/dd/yyyy HH:mm:ss"): ""; var res = fbClient.Get(String.Format("{0}/feed?{1}", p.ForeignID, filterString)); }
public ActionResult Callback(string code, string state) { FacebookOAuthResult oauthResult; if (FacebookOAuthResult.TryParse(Request.Url, out oauthResult)) { if (oauthResult.IsSuccess) { var oAuthClient = new FacebookOAuthClient(FacebookApplication.Current); oAuthClient.RedirectUri = new Uri(redirectUrl); dynamic tokenResult = oAuthClient.ExchangeCodeForAccessToken(code); string accessToken = tokenResult.access_token; DateTime expiresOn = DateTime.MaxValue; FacebookClient fbClient = new FacebookClient(accessToken); dynamic me = fbClient.Get("me?fields=id,name"); long facebookId = Convert.ToInt64(me.id); var account = Accounts.Get().Where(Accounts.Columns.ForeignID, Actions.Equal, facebookId).SelectOne(); if (account == null) { account = new Account { FBKey = accessToken, Name = me.name, ForeignID = facebookId.ToString() }; account.Insert(); } else { account.FBKey = accessToken; account.Name = me.name; account.Update(); } dynamic pages = fbClient.Get("me/accounts"); foreach (var p in pages.data) { FBPage page = FBPages.Get().Where(FBPages.Columns.ForeignID, Actions.Equal, p.id).SelectOne(); if (page == null) { page = new FBPage { ForeignID = p.id, Name = p.name, Token = p.access_token }; page.Insert(); } else { page.Name = p.name; page.Token = p.access_token; page.Update(); } } ViewBag.Name = account.Name; } } return View(); }