hoauth2-0.4.6: example/Douban/test.hs
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE OverloadedStrings #-}
{-
douban oauth2: http://developers.douban.com/wiki/?title=oauth2
/v2/movie/nowplaying
-}
module Main where
import qualified Data.ByteString as BS
import qualified Data.ByteString.Lazy.Char8 as BSL
import qualified Data.Text as T
import qualified Data.Text.Encoding as T
import Network.HTTP.Conduit
import Network.OAuth.OAuth2
import Keys
main :: IO ()
main = do
print $ authorizationUrl doubanKey
putStrLn "visit the url and paste code here: "
code <- getLine
mgr <- newManager conduitManagerSettings
token <- fetchAccessToken mgr doubanKey (sToBS code)
print token
case token of
Right r -> do
uid <- authGetBS mgr r "https://api.douban.com/v2/user/~me"
print uid
Left l -> BSL.putStrLn l
closeManager mgr
sToBS :: String -> BS.ByteString
sToBS = T.encodeUtf8 . T.pack