- data Credentials = Credentials {
- clientId :: Ascii
- clientSecret :: Ascii
- data AccessToken kind = AccessToken {}
- hasExpired :: (Functor m, MonadIO m) => AccessToken kind -> m Bool
- isValid :: ResourceIO m => AccessToken kind -> Manager -> ResourceT m Bool
- data App
- getAppAccessToken :: ResourceIO m => Credentials -> Manager -> ResourceT m (AccessToken App)
- data User
- type RedirectUrl = Text
- data Permission
- getUserAccessTokenStep1 :: Credentials -> RedirectUrl -> [Permission] -> Text
- getUserAccessTokenStep2 :: ResourceIO m => Credentials -> RedirectUrl -> SimpleQuery -> Manager -> ResourceT m (AccessToken User)
- data FacebookException = FacebookException {
- fbeType :: Text
- fbeMessage :: Text
Authorization and Authentication
Credentials
data Credentials Source
Credentials that you get for your app when you register on Facebook.
Credentials | |
|
Eq Credentials | |
Ord Credentials | |
Show Credentials | |
Typeable Credentials | |
ToSimpleQuery Credentials |
Access token
data AccessToken kind Source
An access token. While you can make some API calls without an access token, many require an access token and some will give you more information with an appropriate access token.
There are two kinds of access tokens:
- User access token
- An access token obtained after an user accepts your application. Let's you access more information about that user and act on their behalf (depending on which permissions you've asked for).
- App access token
- An access token that allows you to take administrative actions for your application.
These access tokens are distinguished by the phantom type on
AccessToken
, which can be User
or App
.
AccessToken | |
|
Typeable1 AccessToken | |
Eq (AccessToken kind) | |
Ord (AccessToken kind) | |
Show (AccessToken kind) | |
ToSimpleQuery (AccessToken kind) |
hasExpired :: (Functor m, MonadIO m) => AccessToken kind -> m BoolSource
True
if the access token has expired, otherwise False
.
isValid :: ResourceIO m => AccessToken kind -> Manager -> ResourceT m BoolSource
True
if the access token is valid. An expired access
token is not valid (see hasExpired
). However, a non-expired
access token may not be valid as well. For example, in the
case of an user access token, they may have changed their
password, logged out from Facebook or blocked your app.
App access token
Phantom type used mark an AccessToken
as an app access
token.
getAppAccessToken :: ResourceIO m => Credentials -> Manager -> ResourceT m (AccessToken App)Source
Get an app access token from Facebook using your credentials.
User access token
Phantom type used mark an AccessToken
as an user access
token.
type RedirectUrl = TextSource
URL where the user is redirected to after Facebook authenticates the user authorizes your application. This URL should be inside the domain registered for your Facebook application.
data Permission Source
A permission that is asked for the user when he authorizes your app. Please refer to Facebook's documentation at https://developers.facebook.com/docs/reference/api/permissions/ to see which permissions are available.
This is a newtype
of Text
that supports only IsString
.
This means that to create a Permission
you should use the
OverloadedStrings
language extension. For example,
{-# LANGUAGE OverloadedStrings #-} perms :: [Permission] perms = ["user_about_me", "email", "offline_access"]
getUserAccessTokenStep1 :: Credentials -> RedirectUrl -> [Permission] -> TextSource
The first step to get an user access token. Returns the
Facebook URL you should redirect you user to. Facebook will
authenticate the user, authorize your app and then redirect
the user back into the provider RedirectUrl
.
:: ResourceIO m | |
=> Credentials | |
-> RedirectUrl | Should be exactly the same
as in |
-> SimpleQuery | |
-> Manager | |
-> ResourceT m (AccessToken User) |
The second step to get an user access token. If the user is
successfully authenticate and they authorize your application,
then they'll be redirected back to the RedirectUrl
you've
passed to getUserAccessTokenStep1
. You should take the
request query parameters passed to your RedirectUrl
and give
to this function that will complete the user authentication
flow and give you an
.
AccessToken
User
Exceptions
data FacebookException Source
An exception that may be thrown by functions on this package. Includes any information provided by Facebook.