public static void PostFacebookMessage(Domain.Socioboard.Models.Mongo.SavedFeedsManagement schmessage, Domain.Socioboard.Models.Facebookaccounts _facebook, Domain.Socioboard.Models.User _user) { try { if (_facebook != null) { if (_facebook.IsActive) { DateTime dt = Convert.ToDateTime(schmessage.scheduleTimestr); if (dt <= DateTime.UtcNow) { string data = ComposeMessage(_facebook.FbProfileType, _facebook.AccessToken, _facebook.FbUserId, schmessage.shareMessage, schmessage.postId, schmessage.userId, schmessage.url, schmessage.link, schmessage, _user); } } } } catch (Exception ex) { } }
public static string ComposeMessage(Domain.Socioboard.Enum.FbProfileType profiletype, string accessToken, string fbUserId, string message, string profileId, long userId, string imagePath, string link, Domain.Socioboard.Models.Mongo.SavedFeedsManagement schmessage, Domain.Socioboard.Models.User _user) { string ret = ""; DatabaseRepository dbr = new DatabaseRepository(); FacebookClient fb = new FacebookClient(); fb.AccessToken = accessToken; System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls; var args = new Dictionary <string, object>(); if (profiletype == Domain.Socioboard.Enum.FbProfileType.FacebookProfile) { args["privacy"] = FbUser.SetPrivacy("Public", fb, profileId); } try { if (string.IsNullOrEmpty(link)) { if (!string.IsNullOrEmpty(imagePath)) { if (!string.IsNullOrEmpty(message)) { args["message"] = message; } if (!imagePath.Contains("mp4") && !imagePath.Contains("mov") && !imagePath.Contains("mpeg") && !imagePath.Contains("wmv") && !imagePath.Contains("avi") && !imagePath.Contains("flv") && !imagePath.Contains("3gp")) { Uri u = new Uri(imagePath); string filename = string.Empty; string extension = string.Empty; extension = System.IO.Path.GetExtension(u.AbsolutePath).Replace(".", ""); var media = new FacebookMediaObject { FileName = "filename", ContentType = "image/" + extension }; var webClient = new WebClient(); byte[] img = webClient.DownloadData(imagePath); media.SetValue(img); args["source"] = media; ret = fb.Post("v2.7/" + fbUserId + "/photos", args).ToString(); } else { Uri u = new Uri(imagePath); string filename = string.Empty; string extension = string.Empty; filename = imagePath.Substring(imagePath.IndexOf("get?id=") + 7); if (!string.IsNullOrWhiteSpace(filename)) { extension = filename.Substring(filename.IndexOf(".") + 1); } var media = new FacebookMediaObject { FileName = filename, ContentType = "video/" + extension }; //byte[] img = System.IO.File.ReadAllBytes(imagepath); var webClient = new WebClient(); byte[] img = webClient.DownloadData(imagePath); media.SetValue(img); args["title"] = message; args["description"] = message; args["source"] = media; ret = fb.Post("v2.7/" + fbUserId + "/videos", args).ToString();//v2.1 } } else { args["message"] = message; ret = fb.Post("v2.7/" + fbUserId + "/feed", args).ToString(); } } else { if (!string.IsNullOrEmpty(link)) { if (message.Contains("https://") || message.Contains("http://")) { link = message; if (link.Contains("https://")) { string links = getBetween(link + "###", "https", "###"); links = "https" + links; try { link = links.Split(' ')[0].ToString(); } catch (Exception) { link = links; } } if (link.Contains("http://")) { string links = getBetween(link + "###", "http", "###"); links = "http" + links; try { link = links.Split(' ')[0].ToString(); } catch (Exception) { link = links; } } message = message.Replace(link, ""); args["message"] = message; } else { args["message"] = message; } } else { args["message"] = message; } if (!string.IsNullOrEmpty(link)) { args["link"] = link; } if (!string.IsNullOrEmpty(imagePath)) { args["picture"] = imagePath.Replace("&", "&"); } ret = fb.Post("v2.7/" + fbUserId + "/feed", args).ToString(); } MongoRepository mongorepo = new Helper.MongoRepository("SavedFeedsComments"); schmessage.status = Domain.Socioboard.Enum.ScheduledStatusFeedsManager.Published; FilterDefinition <BsonDocument> filterIds = new BsonDocument("strId", schmessage.strId); var updatetime = Builders <BsonDocument> .Update.Set("status", schmessage.status); mongorepo.Update <Domain.Socioboard.Models.Mongo.SavedFeedsComments>(updatetime, filterIds); } catch (Exception ex) { } return(ret); }