コード例 #1
0
ファイル: Program.cs プロジェクト: Otegaman/lehavi-sap
        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();
                }
            }
        }
コード例 #2
0
ファイル: Class1.cs プロジェクト: Otegaman/lehavi-sap
        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));
        }
コード例 #3
0
        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();
        }