Skip to content

Instantly share code, notes, and snippets.

@jorgeortiz85
Forked from dcbriccetti/gist:831162
Created February 17, 2011 06:44
Show Gist options
  • Save jorgeortiz85/831166 to your computer and use it in GitHub Desktop.
Save jorgeortiz85/831166 to your computer and use it in GitHub Desktop.
object AuthenticatedSession extends Loggable {
def logIn(credentialsOption: Option[Credentials]): Twitter = {
val (tw, credentials) = credentialsOption match {
case Some(cr) =>
(createTwitter(Some(cr)), cr)
case None =>
val twitter = createTwitter(None)
val requestToken = twitter.getOAuthRequestToken
DesktopUtil.browse(requestToken.getAuthorizationURL)
(twitter, Dialog.showInput(null, "Enter the PIN from the Twitter authorization page in your browser",
"Enter PIN", Dialog.Message.Question, null, List[String](), "") match {
case Some(pin: String) =>
val token = twitter.getOAuthAccessToken(requestToken, pin)
CredentialsRepository.save(Credentials(Constants.ServiceName, token.getScreenName,
token.getToken, token.getTokenSecret))
case _ => throw new RuntimeException("No PIN received")
})
}
try {
val twitterUser = tw.verifyCredentials
info("Verified credentials of " + twitterUser.getScreenName)
} catch {
case te: TwitterException =>
CredentialsRepository.delete(credentials)
throw new RuntimeException("Failed to verify credentials: " + te.getMessage)
}
tw
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment