public static void LoginPublish(Action failCallback, Action sucessCallback) { #if FACEBOOK if (!FacebookHelper.IsLoggedIn()) { FB.LogInWithPublishPermissions(new List <string> () { "publish_actions" }, (result) => { Debugger.PrintDictionaryAsServerObject(result.ResultDictionary, "FacebookLogin", (int)SharedSystems.Systems.FACEBOOK_HELPER); if (result.Error == null && !result.Cancelled) { sucessCallback(); } else { Debugger.Log("Login: FB.LogInWithPublishPermissions " + Debugger.ServerObjectAsString(new Hashtable((IDictionary)result.ResultDictionary)), Debugger.Severity.ERROR, (int)SharedSystems.Systems.FACEBOOK_HELPER); failCallback(); } }); } else { Debugger.Log("Login: already logged in", (int)SharedSystems.Systems.FACEBOOK_HELPER); } #endif }
public void SendNotifications(long lookId, long userId, string appAccessToken, VoteType vote) { string db = ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString; //bool isVoted = false; Look look = Look.GetLookById(lookId, userId, db); //send notification to the creator of the outfit unless the creator is a bot (bot is <=0) if (look.creator.facebookId > 0 && vote == VoteType.UpVote) { UserProfile user = UserProfile.GetUserProfileById(userId, db); //Post a fb notification that user has loved a vote try { if (UserProfile.IsFriend(look.creator.userId, user.facebookId)) { //Send the notification only if the user is creator's friend appAccessToken = FacebookHelper.SendNotification(appAccessToken, look.creator.facebookId, user.facebookId, look); this.Session["app_access_token"] = appAccessToken; } } catch (Facebook.FacebookOAuthException ex) { //Log the oauth exception. } } //send notification to a voter if their friend voted on the same outfit }
async void ContentPanel_Loaded(object sender, RoutedEventArgs e) { try { source = new CancellationTokenSource(); fbBrowser.Visibility = Visibility.Visible; task = ParseFacebookUtils.LogInAsync(fbBrowser, new[] { "basic_info", "email", "user_location", "user_birthday" }, source.Token); await task; fbBrowser.Visibility = Visibility.Collapsed; // check to see if any fields need to be updated: FacebookHelper.CheckForUpdates(); NavigationService.Navigate(new Uri("/Pages/NewsFeed.xaml?FromLogin=true", UriKind.Relative)); } catch (OperationCanceledException) { task = null; } catch (Exception) { // other error: MessageBox.Show("There was an error trying to log in. Please try again."); return; } }
public static Event Parse(dynamic eventObject) { Event fbEvent = new Event(); fbEvent.Id = eventObject.eid; fbEvent.Name = eventObject.name; fbEvent.Description = eventObject.description; fbEvent.StartTime = DateTime.Parse((string)eventObject.start_time); if (!(eventObject.venue is Facebook.JsonArray)) { fbEvent.Venue = FacebookHelper.DeserealizeVenue(eventObject.venue); } fbEvent.AttendingCount = (int)eventObject.attending_count; fbEvent.EventUrl = @"https://www.facebook.com/events/" + fbEvent.Id; Image img = new Image() { Type = 1, //. Enum. Small Image Url = @"http://graph.facebook.com/" + fbEvent.Id + @"/picture" }; //Download file return(fbEvent); }
public void PostData(ShareathonGroup item) { FacebookAccount facebookAccount = sharegrprepo.getFbAccount(item.Facebookaccountid); string feedId = string.Empty; string[] pageid = item.Facebookpageid.Split(','); foreach (string item_str in pageid) { string feeds = FacebookHelper.getFacebookRecentPost(item.AccessToken, item_str); try { if (!string.IsNullOrEmpty(feeds) && !feeds.Equals("[]")) { JObject fbpageNotes = JObject.Parse(feeds); foreach (JObject obj in JArray.Parse(fbpageNotes["data"].ToString())) { try { string feedid = obj["id"].ToString(); feedid = feedid.Split('_')[1]; feedId = feedid + "," + feedId; } catch { } } } } catch (Exception ex) { } } FacebookHelper.postfeedGroup(item.AccessToken, item.Facebookgroupid, feedId, facebookAccount.FbUserId, item.Timeintervalminutes); }
public ActionResult PostarFace(Guid id) { var servico = ctx.Servico.Find(id); var postValues = new Dictionary <string, string>(); ClaimsIdentity claimIdenties = HttpContext.User.Identity as ClaimsIdentity; if (claimIdenties.FindFirst("FacebookAccessToken") == null) { return(RedirectToAction("IndexServico", "Usuario")); } // list of available parameters available @ http://developers.facebook.com/docs/reference/api/post postValues.Add("access_token", claimIdenties.FindFirst("FacebookAccessToken").Value); postValues.Add("message", servico.DS_TITULO); string facebookWallMsgId = string.Empty; string response; MethodResult header = FacebookHelper.SubmitPost(string.Format("https://graph.facebook.com/{0}/feed", claimIdenties.FindFirst("FacebookProviderKey").Value), FacebookHelper.BuildPostString(postValues), out response); if (header.returnCode == MethodResult.ReturnCode.Success) { var deserialised = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, string> >(response); facebookWallMsgId = deserialised["id"]; return(RedirectToAction("IndexServico", "Usuario")); } throw new Exception(header.returnCode.ToString()); }
public void PostDataPage(Shareathon item, string pageid) { Domain.Socioboard.Domain.FacebookAccount facebookpage = sharepo.getFacebookAccountDetailsByUserProfileId(pageid, item.Userid); Domain.Socioboard.Domain.FacebookAccount facebookAccount = sharepo.getFacebookAccountDetailsByUserProfileId(item.Facebookaccountid, item.Userid); if (facebookpage != null) { string feeds = FacebookHelper.getFacebookRecentPost(facebookAccount.AccessToken, facebookpage.FbUserId); string feedId = string.Empty; try { if (!string.IsNullOrEmpty(feeds) && !feeds.Equals("[]")) { JObject fbpageNotes = JObject.Parse(feeds); foreach (JObject obj in JArray.Parse(fbpageNotes["data"].ToString())) { try { string feedid = obj["id"].ToString(); feedid = feedid.Split('_')[1]; if (sharepo.IsShareathonExistById(item.Id)) { string ret = FacebookHelper.ShareFeed(facebookAccount.AccessToken, feedid, facebookpage.FbUserId, "", facebookAccount.FbUserId, facebookpage.FbUserName); if (ret == "success") { Thread.Sleep(1000 * 60 * item.Timeintervalminutes); } else if (ret == "Error validating access token") { facebookAccount.IsActive = 2; facebookrepo.updateFacebookUserStatus(facebookAccount); } } } catch { } } } else { if (!feeds.Contains("The remote server returned an error: (400) Bad Request.")) { facebookpage.IsActive = 2; facebookrepo.updateFacebookUserStatus(facebookpage); } else { facebookpage.IsActive = 2; facebookrepo.updateFacebookUserStatus(facebookAccount); sharepo.UpadteShareathonByFacebookUserId(facebookAccount.FbUserId, facebookAccount.UserId); } } } catch (Exception ex) { } } }
public void PostDataPage(Shareathon item, string pageid) { FacebookAccount facebookpage = sharegrprepo.getFbAccount(Guid.Parse(pageid)); FacebookAccount facebookAccount = sharegrprepo.getFbAccount(item.Facebookaccountid); string feeds = FacebookHelper.getFacebookRecentPost(facebookpage.AccessToken, facebookpage.FbUserId); string feedId = string.Empty; try { if (!string.IsNullOrEmpty(feeds) && !feeds.Equals("[]")) { JObject fbpageNotes = JObject.Parse(feeds); foreach (JObject obj in JArray.Parse(fbpageNotes["data"].ToString())) { try { string feedid = obj["id"].ToString(); feedid = feedid.Split('_')[1]; FacebookHelper.ShareFeed(facebookAccount.AccessToken, feedid, facebookpage.FbUserId, "", facebookAccount.FbUserId, "", item.Timeintervalminutes); } catch { } Thread.Sleep(1000 * 60 * item.Timeintervalminutes); } } } catch (Exception ex) { } }
public IHttpActionResult EditShareathon(ShareathonGroupViewModel sharethon) { string groupId = ""; string nameId = ""; ShareathonGroup eidtShareathon = sharegrprepo.getShareathon(sharethon.Id); FacebookAccount facebookAccount = sharepo.getFbAccount(sharethon.Facebookaccountid); string pageid = FacebookHelper.GetFbPageDetails(sharethon.FacebookPageUrl, facebookAccount.AccessToken); eidtShareathon.Facebookaccountid = facebookAccount.Id; eidtShareathon.Facebookpageid = pageid; eidtShareathon.FacebookPageUrl = sharethon.FacebookPageUrl; eidtShareathon.Timeintervalminutes = sharethon.Timeintervalminutes; for (int i = 0; i < sharethon.FacebookGroupId.Length; i++) { string dataid = sharethon.FacebookGroupId[i]; string[] grpid = Regex.Split(dataid, "###"); groupId = grpid[0] + "," + groupId; nameId = sharethon.FacebookGroupId[i] + "," + nameId; } eidtShareathon.Facebookgroupid = groupId.TrimEnd(','); eidtShareathon.Facebooknameid = nameId.TrimEnd(','); if (sharegrprepo.updateShareathon(eidtShareathon)) { return(Ok()); } else { return(BadRequest()); } }
public async Task <ChallengeCreateResponseModel> SendChallenges(IList <object> selectedItems) { List <string> contacts = new List <string>(); foreach (var item in selectedItems) { var contact = item as ContactData; if (contact != null) { if (contact.ContactStr != "Challenge on Facebook") { contacts.Add(contact.ContactStr.Replace("+", "")); } else { FacebookHelper fbh = new FacebookHelper(); await fbh.CreateFbPost(); } } } if (contacts.Count == 0) { return(new ChallengeCreateResponseModel { Status = CreateChallengeStatus.Ok }); } return(await Game.CreateChallenge(puzzle.GameId, contacts)); }
private ActionResult ProcessResponseErrorRedirect(string redirecturi, WebException exception) { if (exception != null && exception.Response != null) { var responsestream = exception.Response.GetResponseStream(); if (responsestream != null && exception.Response.ContentLength > 0) { var responsebody = new StreamReader(responsestream).ReadToEnd(); var errorresponse = System.Web.Helpers.Json.Decode <FacebookErrorResponse>(responsebody); if (errorresponse.error.type == "OAuthException") { return(Redirect(FacebookHelper.GetSignUpUrl(AppConfigHelper.FacebookAppId, new List <string> { "email" }, redirecturi, TempData).AbsoluteUri)); } } } TempData[TempDataStringResuorce.ActionResultNotification] = new ActionResultNotification { Message = "Some network related error occured, Please try again", Result = false, State = ActionResultNotification.MessageState.Warning }; return(RedirectToAction("LogIn", "Account")); }
public void SendNotifications(Look look, string appAccessToken) { string db = ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString; //send notification to the creator of the outfit unless the creator is a bot (bot is <=0) if (look.creator.facebookId > 0) { //Get look's creator's follower's facebook ids List <long> followerIds = UserProfile.GetUserFollowersFacebookIds(look.creator.userId, db); //Post a fb notification to user's followers that user has posted a look foreach (long followerId in followerIds) { try { appAccessToken = FacebookHelper.SendCreateNotification(appAccessToken, look.creator.facebookId, followerId, look); this.Session["app_access_token"] = appAccessToken; } catch (Facebook.FacebookOAuthException ex) { //Log the oauth exception. } } } //send notification to a voter if their friend voted on the same outfit }
private void SendRatingFacebook(int score) { var facebookId = App.MobileService.CurrentUser.UserId.Split(':')[1]; FacebookHelper.RetrieveUserInformation(facebookId, async fu => { Rating rating = new Rating() { SessionId = Session.Id, Score = (float)score, RaterName = fu.FullName, ImageUrl = fu.PictureUrl }; await App.MobileService.GetTable <Rating>().InsertAsync(rating); }, async() => { Rating rating = new Rating() { SessionId = Session.Id, Score = (float)score, RaterName = "Someone", ImageUrl = "Assets/NoProfile.png" }; await App.MobileService.GetTable <Rating>().InsertAsync(rating); }); }
private static List <CbcBeer> LoadFromFacebook() { var posts = FacebookHelper.FetchEventPosts(162211374161547).ConfigureAwait(false).GetAwaiter().GetResult(); var beers = new List <CbcBeer>(); foreach (var post in posts) { if (post.Text != null && post.Text.Contains("RED") && post.Text.Contains("GREEN") && post.Text.Contains("BLUE") && post.Text.Contains("YELLOW")) { var reader = new CbcFacebookReader(post.Text); while (true) { var beer = reader.ReadBeer(); if (beer == null) { break; } beers.Add(beer); } } } return(beers); }
public void GenerateTypingActivityShouldReturnActivityWithTypingOn() { var activity = FacebookHelper.GenerateTypingActivity(string.Empty); Assert.Equal("typing_on", activity.GetChannelData <FacebookMessage>().SenderAction); Assert.Null(activity.GetChannelData <FacebookMessage>().Message); }
public async Task WriteAsyncShouldFailWithNullResponse() { await Assert.ThrowsAsync <ArgumentNullException>(async() => { await FacebookHelper.WriteAsync(null, HttpStatusCode.OK, "testText", Encoding.UTF8, new CancellationToken()).ConfigureAwait(false); }); }
public void ProcessSingleMessageShouldReturnAnActivityWithMessageWithData() { var facebookMessageJson = File.ReadAllText(Directory.GetCurrentDirectory() + @"/Files/FacebookMessages.json"); var facebookMessage = JsonConvert.DeserializeObject <List <FacebookMessage> >(facebookMessageJson)[0]; var activity = FacebookHelper.ProcessSingleMessage(facebookMessage); Assert.Equal(activity.Conversation.Id, facebookMessage.Recipient.Id); }
// =========================================================================== // = Public Methods // =========================================================================== public static void Initialize() { // Initialize Facebook credentials. FacebookHelper.Initialize( ConfigurationManager.AppSettings["FACEBOOK_ACCESS_TOKEN"], ConfigurationManager.AppSettings["FACEBOOK_APP_ID"], ConfigurationManager.AppSettings["FACEBOOK_APP_SECRET"]); }
public async Task WriteAsyncShouldFailWithNullEncoding() { var httpResponse = new Mock <HttpResponse>(); await Assert.ThrowsAsync <ArgumentNullException>(async() => { await FacebookHelper.WriteAsync(httpResponse.Object, HttpStatusCode.OK, "testText", null, new CancellationToken()).ConfigureAwait(false); }); }
public void ProcessSingleMessageShouldReturnActivityWithPostBack() { var facebookMessageJson = File.ReadAllText(Directory.GetCurrentDirectory() + @"/Files/FacebookMessages.json"); var facebookMessage = JsonConvert.DeserializeObject <List <FacebookMessage> >(facebookMessageJson)[4]; var activity = FacebookHelper.ProcessSingleMessage(facebookMessage); Assert.NotNull(activity.Text); Assert.Equal(facebookMessage.PostBack.Payload, activity.Text); }
private async void Authenticate() { bool res = await FacebookHelper.Authenticate(); if (!res) { ResultTextBlock.Text = "Something went wrong!"; } }
public void ProcessSingleMessageShouldReturnActivityWithAttachments() { var facebookMessageJson = File.ReadAllText(Directory.GetCurrentDirectory() + @"/Files/FacebookMessages.json"); var facebookMessage = JsonConvert.DeserializeObject <List <FacebookMessage> >(facebookMessageJson)[3]; var activity = FacebookHelper.ProcessSingleMessage(facebookMessage); Assert.NotNull(activity.Attachments); Assert.Equal(AttachmentCountTest, activity.Attachments.Count); }
public ActionResult GetFBGroup() { var fbHelper = new FacebookHelper(); var data = fbHelper.FeedB2BThaiGroup(); return(Json(new { FeedGroup = data }, JsonRequestBehavior.AllowGet)); }
private async void OnLoginFacebook(object sender, PointerRoutedEventArgs e) { try { await LoginFacebook(); } catch (Exception) { return; } var success = false; var shouldSleep = false; for (var iterator = 0; iterator < 3 && !success; iterator++) { try { var facebookId = this.GetPrivateClient().CurrentUser.UserId.Split(':')[1]; var userInformation = await FacebookHelper.RetrieveUserInformation(facebookId); User.Current.UserId = userInformation.FullName; success = true; } catch (Exception) { if (iterator == 2) { User.Current.UserId = GetPrivateClient().CurrentUser.UserId; } else { shouldSleep = true; } } if (shouldSleep) { shouldSleep = false; await Task.Delay(TimeSpan.FromMilliseconds(400 * Math.Pow(2, iterator))); } } var login = LoggedIn; if (login != null) { login.Invoke(this, null); } UpdateVisibility(); loginPopup.IsOpen = false; }
public void ActivityToFacebookShouldReturnMessageWithAttachment() { var activityJson = File.ReadAllText(Directory.GetCurrentDirectory() + @"/Files/Activities.json"); var activity = JsonConvert.DeserializeObject <Activity>(activityJson); var messageOption = FacebookHelper.ActivityToFacebook(activity); Assert.Equal(activity.Conversation.Id, messageOption.Recipient.Id); Assert.Equal(activity.Text, messageOption.Message.Text); Assert.Equal(activity.Attachments[0].ContentType, messageOption.Message.Attachment.Type); }
public async Task SetFacebookFriendsAsync(string accessToken) { var facebookHelper = new FacebookHelper(); FacebookProfile = await facebookHelper.GetFacebookProfileAsync(accessToken); if (FacebookProfile != null) { string userID = FacebookProfile.Id; FacebookFriends = await facebookHelper.GetFacebookProfileFriendAsync(accessToken, userID); } }
public override bool ProcessCreate(Item item) { if (base.ProcessCreate(item)) { return(true); } var fbret = FacebookHelper.AddContactInfo(storage, item); var pcret = PossibleContactHelper.AddContact(storage, item); return(fbret && pcret); }
public async Task GoToShareOrChallenge() { if (createdByCurrentUser) { FacebookHelper fb = new FacebookHelper(); await fb.ShareOnFb(); } else { await GoToChallenge(); } }
public void GetEmbedVideoLinkTest() { // arrange var startingLink = "https://www.facebook.com/NBCNews/videos/213248396772223/"; var expected = "https://www.facebook.com/video/embed?video_id=213248396772223"; // act var actual = new FacebookHelper().GetEmbedVideoLink(startingLink); // assert StringAssert.AreEqualIgnoringCase(expected, actual); }
public ActionResult TestFB() { var fb = new FacebookHelper(); var model = new FacebookModel(); model.Link = "http://www.ouikum.com/MyB2B/quotation/bidproduct/QO-ACB-130521-2"; model.Picture = "https://ouikumstorage.blob.core.windows.net/upload/Product/3523/151289/CHANG-509.jpg"; model.Message = "มีลูกค้าต้องการ $ชื่อสินค้า$ $จำนวน$ สำหรับ Suppliers ท่านไหนสนใจ สามารถเสนอราคา ติดต่อที่"; var isResult = fb.PostFeed(model); return(View()); }