/// <summary> /// <see cref="OAuthAuthenticator.GetOAuthUserCredentials"/> /// </summary> protected override OAuthUserCredentials GetOAuthUserCredentials(string response) { OAuthUserCredentials result = base.GetOAuthUserCredentials(response); string userName = GetUserNameFromToken(response); if (userName.IsNotNullOrEmpty()) { result.UserLogin = userName; } return(result); }
/// <summary> /// <see cref="OAuthAuthenticator.ValidateCredentials"/> /// </summary> protected override bool ValidateCredentials(OAuthUserCredentials credentials) { Guid ownerId = GetMailboxOwner(credentials); bool currentUserMailbox = ownerId.Equals(UserConnection.CurrentUser.Id); if (currentUserMailbox) { SetExistingMailboxId(credentials); } return(!currentUserMailbox); }
/// <summary> /// <see cref="OAuthAuthenticator.SaveCredentials"/> /// </summary> /// <remarks>Throws <see cref="InvalidObjectStateException"/> when <paramref name="credentials"/> contains /// existing mailbox credentials.</remarks> protected override void SaveCredentials(OAuthUserCredentials credentials) { Guid ownerId = GetMailboxOwner(credentials); if (ownerId.IsNotEmpty() && !ownerId.Equals(UserConnection.CurrentUser.Id)) { throw new InvalidObjectStateException(string.Format("Mailbox {0} already exists!", credentials.UserLogin)); } base.SaveCredentials(credentials); }
/// <summary> /// Sets existing user mailbox identifier to <see cref="_mailboxSyncSettingsId"/> field. /// When field already set, value would not be changed. /// </summary> /// <param name="credentials"><see cref="OAuthUserCredentials"/> instance.</param> protected virtual void SetExistingMailboxId(OAuthUserCredentials credentials) { if (_mailboxSyncSettingsId.IsNotEmpty()) { return; } var existingMailboxSelect = GetCheckMailboxSelectBody("Id") .Where("SenderEmailAddress").IsEqual(Column.Parameter(credentials.UserLogin)) .And("SysAdminUnitId").IsEqual(Column.Parameter(UserConnection.CurrentUser.Id)) as Select; _mailboxSyncSettingsId = existingMailboxSelect.ExecuteScalar <Guid>(); }
/// <summary> /// Checks that mailbox already exists in bpm'online. /// <see cref="MailboxSyncSettings.SenderEmailAddress"/> used for validation. /// </summary> /// <param name="credentials"><see cref="OAuthUserCredentials"/> instance.</param> /// <returns> <see cref="MailboxSyncSettings.SysAdminUnitId"/> column value when mailbax exists, /// <c>Guid.Empty</c> otherwise.</returns> protected virtual Guid GetMailboxOwner(OAuthUserCredentials credentials) { if (_mailboxOwnerId.IsNotEmpty()) { return(_mailboxOwnerId); } var existingMailboxSelect = GetCheckMailboxSelectBody("SysAdminUnitId") .Where("SenderEmailAddress").IsEqual(Column.Parameter(credentials.UserLogin)) as Select; _mailboxOwnerId = existingMailboxSelect.ExecuteScalar <Guid>(); return(_mailboxOwnerId); }
/// <summary> /// Saves recived from shared application OAuth tokes and user settings. /// </summary> public virtual void SharedAppAuthCallback() { Initialize(); try { OAuthUserCredentials credentials = GetCredentials(); SaveCredentials(credentials); JObject result = GetSuccessResultObject(credentials); AppendCookieToResponse(true, result); } catch (Exception ex) { AppendError(ex); } RedirectToBpm(FinalStageRedirectUrl); }
/// <summary> /// <see cref="OAuthAuthenticator.GetSuccessResultObject"/> /// </summary> protected override JObject GetSuccessResultObject(OAuthUserCredentials credentials) { var mailServerId = new Guid((string)State["MailServerId"]); return(new JObject { { "SenderEmailAddress", credentials.UserLogin }, { "MailBoxServerId", mailServerId }, { "MailboxSyncSettingsId", _mailboxSyncSettingsId.ToString() }, { "MailboxSyncInterval", GetSyncInterval() }, { "AutomaticallyAddNewEmails", true }, { "AllowEmailDownloading", GetAllowEmailDownloading(mailServerId) } }); }
public static void Main() { // Wait for DHCP while (IPAddress.GetDefaultLocalAddress() == IPAddress.Any) { Thread.Sleep(50); } // Update the current time (since Twitter OAuth API requests require a valid timestamp) DateTime utcTime = Sntp.GetCurrentUtcTime(); Microsoft.SPOT.Hardware.Utility.SetLocalTime(utcTime); // Set up application and user credentials // Visit https://apps.twitter.com/ to create a new Twitter application and get API keys/user access tokens var appCredentials = new OAuthApplicationCredentials() { ConsumerKey = "YOUR_CONSUMER_KEY_HERE", ConsumerSecret = "YOUR_CONSUMER_SECRET_HERE", }; var userCredentials = new OAuthUserCredentials() { AccessToken = "YOUR_ACCESS_TOKEN", AccessTokenSecret = "YOUR_ACCESS_TOKEN_SECRET", }; // Create new Twitter client with these credentials var twitter = new TwitterClient(appCredentials, userCredentials); // Verify the credentials and get the current user's account info try { var currentUser = twitter.GetCurrentUser(); Debug.Print("Authenticated user account: @" + currentUser.ScreenName); } catch (Exception e) { Debug.Print("Could not verify account credentials."); Debug.Print(e.ToString()); } // Send a tweet try { var tweet = twitter.SendTweet("Trying out MicroTweet! #netmf"); Debug.Print("Posted a new tweet with ID: " + tweet.ID); } catch (Exception e) { Debug.Print("Could not send tweet."); Debug.Print(e.ToString()); } // Get recent tweets from the home timeline try { var tweets = twitter.GetHomeTimeline(5); Debug.Print("Recent tweets from your timeline:"); foreach (Tweet tweet in tweets) { Debug.Print(" Tweet from @" + tweet.User.ScreenName + ": \"" + tweet.Text + "\""); } } catch (Exception e) { Debug.Print("Could not retrieve timeline."); Debug.Print(e.ToString()); } // Get recent tweets from a specific user try { var tweets = twitter.GetUserTimeline("twitter"); Debug.Print("Recent tweets from @twitter's timeline:"); foreach (Tweet tweet in tweets) { Debug.Print(" Tweet from @" + tweet.User.ScreenName + ": \"" + tweet.Text + "\""); } } catch (Exception e) { Debug.Print("Could not retrieve timeline."); Debug.Print(e.ToString()); } }
/// <summary> /// Returns user email from google, using <see cref="GoogleConsumer.GetUserEmail"/> method. /// </summary> /// <param name="credentials">User oauth credentials.</param> /// <returns>User email from google</returns> protected virtual string GetUserEmailFromGoogle(OAuthUserCredentials credentials) { return(GoogleConsumer.GetUserEmail(credentials.AccessToken)); }
/// <summary> /// <see cref="OAuthAuthenticator.SaveCredentials"/> /// </summary> protected override void SaveCredentials(OAuthUserCredentials credentials) { credentials.UserLogin = GetUserEmailFromGoogle(credentials); base.SaveCredentials(credentials); }