public long PostPhoto(string pageId, FacebookPostViewModel model) { dynamic parameters = new ExpandoObject(); parameters.link = model.Link ?? string.Empty; parameters.place = model.LocationId ?? string.Empty; parameters.caption = model.Content; try { foreach (var item in model.Picture.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList()) { byte[] photo = File.ReadAllBytes(item); var mediaObject = new FacebookMediaObject { FileName = Path.GetFileNameWithoutExtension(item), ContentType = "image/jpeg" }; mediaObject.SetValue(photo); parameters.source = mediaObject; } InitializeFacebookClient(model.AccessToken); var result = _fbClient.Post(String.Format("/{0}/photos", pageId), parameters); var jsonResult = (JObject)JsonConvert.DeserializeObject(result.ToString()); return(Convert.ToInt64(jsonResult.First.First.ToString())); } catch (FacebookOAuthException) { } catch (Exception) { } return(0); }
public async Task <ActionResult> FB_PostPages() { var access_token = HttpContext.Items["access_token"].ToString(); var appsecret_proof = access_token.GenerateAppSecretProof(); var facebookClient = new FacebookClient(); var posts = await facebookClient.GetAsync <dynamic>( access_token, "me", "fields=posts{description,caption,message,story,link,name,created_time,picture}"); var postList = new List <FacebookPostViewModel>(); foreach (dynamic post in posts.posts.data) { var facebookPost = new FacebookPostViewModel { Id = post.id, Name = post.name, CreatedTime = post.created_time, Message = post.message, Description = post.description, Story = post.story, Caption = post.caption, Link = post.link, PictureURL = post.picture, }; postList.Add(facebookPost); } return(PartialView(postList)); }
public async Task <ActionResult> FB_GetFeed() { var access_token = Convert.ToString(HttpContext.Items["access_token"]); if (access_token != null) { try { var appsecret_proof = access_token.generateAppSecretProof(); FacebookProfileViewModel fbm = new FacebookProfileViewModel(); var imgurl = fbm.ImageURL; FacebookPostViewModel fbpm = new FacebookPostViewModel(); var fb = new FacebookClient(access_token); dynamic myFeed = await fb.GetTaskAsync( ("me/feed?fields=id,from {{id,name,picture{{url}}}},story,picture,link,name,description,message,type,created_time,likes,comments").GraphAPICall(appsecret_proof)); var postList = new List <FacebookPostViewModel>(); foreach (dynamic post in myFeed.data) { postList.Add(DynamicExtention.ToStatic <FacebookPostViewModel>(post)); } fbpm.From_Picture_Url = imgurl; return(PartialView(postList)); } catch (Exception) { throw; } } else { throw new HttpException(404, "missing access token"); } }
public long Post(string pageId, FacebookPostViewModel model) { dynamic parameters = new ExpandoObject(); parameters.message = model.Content; parameters.link = model.Link ?? string.Empty; parameters.place = model.LocationId ?? string.Empty; try { InitializeFacebookClient(model.AccessToken); var result = _fbClient.Post(String.Format("/{0}/feed", pageId), parameters); var jsonResult = (JObject)JsonConvert.DeserializeObject(result.ToString()); return(Convert.ToInt64(jsonResult.First.First.ToString().Split('_')[1])); } catch (FacebookOAuthException) { } catch (Exception) { } return(0); }
public long PostVideo(string pageId, FacebookPostViewModel model) { dynamic parameters = new ExpandoObject(); parameters.link = model.Link ?? string.Empty; parameters.place = model.LocationId ?? string.Empty; parameters.title = model.Content; parameters.desription = model.Content; try { byte[] video = File.ReadAllBytes(model.Picture); //Stream video = File.OpenRead(model.Picture); var extension = Path.GetExtension(model.Picture).Replace(".", "").Replace(",", ""); var mediaObject = new FacebookMediaObject /*FacebookMediaStream*/ { FileName = Path.GetFileName(model.Picture) /*Path.GetFileNameWithoutExtension(model.Picture)*/, ContentType = "video/" + extension.ToLower() }; mediaObject.SetValue(video); parameters.source = mediaObject; InitializeFacebookClient(model.AccessToken); var result = _fbClient.Post(String.Format("/{0}/videos", pageId), parameters); var jsonResult = (JObject)JsonConvert.DeserializeObject(result.ToString()); return(Convert.ToInt64(jsonResult.First.First.ToString())); } catch (FacebookOAuthException) { } catch (Exception) { } return(0); }
// GET: Comments public ActionResult Index(string id) { try { Debugger.Launch(); if (!string.IsNullOrEmpty(id)) { if (User.Identity.IsAuthenticated) { var facebookComments = new FacebookPost(); var userId = Convert.ToInt64(((FormsIdentity)((GenericPrincipal)User).Identity).Ticket.UserData); var postid = id; //"146505212039213_2464275336928844"; var userAccessTokenModel = WebUow.Instance.RepoOf <FacebookAccessToken>().Get(q => q.userid == userId).SingleOrDefault(); //var acccessoken = // "EAACEdEose0cBAG7Mrj2NC0goUJk0x4dzcaxQHPZBzu8QLZACQAWyMABwy7wlAFg6c60NrX5wbFAkrVUAaxSruaD8L9nKTTLnVbk930SoQZCNadIyEd9JkDubJHLO5GvagSWkhfVtZAzPI72iJEt6w7SMxFXhVyQCDw4owBywCQZDZD"; var obj = facebookComments.GetFacebookPostReactions(postid, userAccessTokenModel.accesstoken); FacebookReactions facebookreactions; if (obj is FacebookReactions) { facebookreactions = (FacebookReactions)obj; } else { var facebookerror = (FacebookError)obj; // Login status or access token has expired, been revoked, or is otherwise invalid. Handle expired access tokens. // Access token has expired // Error validating access token: The session is invalid because the user logged out. if (facebookerror.error.code == "190" && facebookerror.error.error_subcode == "463") { ViewBag.Error = facebookerror.error.message; FormsAuthentication.SignOut(); return(RedirectToAction("Index", "Login")); } // This post cannot be fetched it is private else if (facebookerror.error.code == "100") { ViewBag.Error = "Due to facebook restriction we cannot Fetch comments of group, user and private facebook posts. Kindly make sure the post is public and not from the user or group."; } // (#803) Some of the aliases you requested do not exist: 1024337415_ // something is wrong with the request else if (facebookerror.error.code == "803") { ViewBag.Error = facebookerror.error.message; } return(View("Error")); } var facebookcomment = facebookComments.GetAllCommentsAndReplies(postid, userAccessTokenModel.accesstoken); var model = new FacebookPostViewModel { General = new General { Angry = facebookreactions.angry.summary.total_count, Haha = facebookreactions.haha.summary.total_count, Like = facebookreactions.like.summary.total_count, Love = facebookreactions.love.summary.total_count, Sad = facebookreactions.sad.summary.total_count, //MostActiveUsers = facebookreactions.angry.summary.total_count, Shares = facebookreactions.shares == null ? 0 : facebookreactions.shares.count, Wow = facebookreactions.wow.summary.total_count, Comments = facebookreactions.comments.summary.total_count } }; if (facebookcomment != null && facebookcomment.Count > 0) { model.General.PeopleInConversation = TotalUniuePeopleinConversation(facebookcomment); model.General.Replies = CountFacebookReplies(facebookcomment); model.General.RepliesLikes = CountRepliesLikes(facebookcomment); model.General.CommentsLikes = CountCommentLikes(facebookcomment); var maxCommentDate = facebookcomment.OrderByDescending(q => q.created_time).FirstOrDefault(); model.ToDate = maxCommentDate != null ? maxCommentDate.created_time : DateTime.Now; model.Wordcloud = CountWordCloud(facebookcomment); model.WordCloudCount = 0; foreach (var item in model.Wordcloud) { model.WordCloudCount += item.Value; } model.Chartmonth = GetDates(facebookcomment); model.AttachmentViewModels = GetImages(facebookcomment); CountFacebookReplies(facebookcomment); } model.CreatedTime = DateTime.Parse(facebookreactions.created_time).ToString("MMMM dd, yyyy"); model.FromDate = DateTime.Parse(facebookreactions.created_time); model.Postid = postid; Session["facebookcomment"] = facebookcomment; return(View(model)); } return(RedirectToAction("Index", "Login")); } ViewBag.Error = "Wrong Facebook PostId"; return(View("Error")); } catch (Exception ex) { ViewBag.Error = ex.Message; return(View("Error")); } }