Haskell bindings to Facebook's API
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
importFacebookimportNetwork.HTTP.ClientimportNetwork.HTTP.Client.TLSimportControl.Monad.Trans.ControlimportControl.Monad.Trans.ResourceimportControl.Monad.IO.ClassimportData.Monoid ((<>))
importData.ByteString.Char8 (pack)
importData.Texthiding (pack)
importData.AesonimportqualifiedData.Text.EncodingasTEmyCreds::Credentials
myCreds =Credentials
{ appName ="Your_APP_Name"
, appId ="your_app_id"
, appSecret ="xxxxxxxxxxxxxxxxx"
, appSecretProof =False
}
main::IO()
main =do
mgr <- newManager tlsManagerSettings
let redirectUrl ="https://www.yourdomain.com/"
runResourceT $
runFacebookT myCreds mgr $do url1 <- getUserAccessTokenStep1 redirectUrl ["public_profile", "email"]
liftIO $print ("Paste the url in browser and get code: "<> url1)
code <- liftIO $getLine
token <- getUserAccessTokenStep2 redirectUrl [("code", pack code)]
liftIO $print token (picture :: Value) <-
getObject "/me/picture" [("redirect", "0")] (Just token)
liftIO $ print picture
user <- getUser "me" [("fields", "first_name,last_name")] (Just token)
liftIO $ print user