Collection of Facebook workflows for PAL.
For details, read the Facebook documentation.
You can configure the workflow by passing options below into pal:new/2
or pal:group/2
functions:
client_id
(required) - The client ID obtained from the App dashboard.client_secret
(required) - The client secret obtained from the App Dashboard.redirect_uri
(required) - The client redirection endpoint. After completing its interaction with the resource owner, the authorization server directs the resource owner's user-agent to this uri.scope
(optional) - A list of requested permissions.request_options
(optional) - Options for the hackney HTTP client.includes
(optional) - Parts of authentication schema to be processed by the workflow. All by default,[uid, credentials, info, extra, rules]
.
code
- The authorization code.state
- The state was previously passed to the authentication provider.error
If the request fails due to a missing, invalid, or mismatching redirection URI, or if the client identifier is missing or invalid.
An successful execution of pal:authenticate/{2,3}
function returns
the authentication schema below.
#{access_token => <<"...">>,
expires_in => <<"5183998">>}
See a complete example with PAL and Cowboy HTTP server here.
You can configure the workflow by passing options below into pal:new/2
or pal:group/2
functions:
request_options
(optional) - Options for the hackney HTTP client.includes
(optional) - Parts of authentication schema to be processed by the workflow. All by default,[uid, credentials, info, extra, rules]
.
access_token
- An access Token obtained using thepal_facebook_oauth2_authcode
workflow.
An successful execution of pal:authenticate/{2,3}
function returns
the authentication schema below.
#{uid => <<"...">>,
info =>
#{name => <<"John Doe">>,
first_name => <<"John">>,
last_name => <<"Doe">>,
gender => <<"male">>,
email => <<"[email protected]">>,
image => <<"https://graph.facebook.com/...">>,
uri => <<"https://www.facebook.com/...">>}}
See a complete example with PAL and Cowboy HTTP server here.
The source code is provided under the terms of the MIT license.