Class yii\authclient\clients\Facebook
| Inheritance | yii\authclient\clients\Facebook » yii\authclient\OAuth2 » yii\authclient\BaseOAuth » yii\authclient\BaseClient » yii\base\Component » yii\base\BaseObject |
|---|---|
| Implements | yii\authclient\ClientInterface, yii\base\Configurable |
| Available since version | 2.0 |
| Source Code | https://github.com/yiisoft/yii2-authclient/blob/master/clients/Facebook.php |
Facebook allows authentication via Facebook OAuth.
In order to use Facebook OAuth you must register your application at https://developers.facebook.com/apps. Add an app. In "Settings" -> "Basic" specify "App Domains". There you can obtain ID and Secret values to put into config. In "Products" press "+" and add "Facebook Login". In its settings make sure you enabled "Web OAuth Login" and specify "Valid OAuth Redirect URIs" as "https://example.com/auth?authclient=facebook".
Example application configuration:
'components' => [
'authClientCollection' => [
'class' => 'yii\authclient\Collection',
'clients' => [
'facebook' => [
'class' => 'yii\authclient\clients\Facebook',
'clientId' => 'facebook_client_id',
'clientSecret' => 'facebook_client_secret',
],
],
]
// ...
]
See also:
Public Properties
Public Methods
Protected Methods
Property Details
List of attribute names, which should be requested from API to initialize user attributes.
Whether to automatically upgrade short-live (2 hours) access token to long-live (60 days) one, after fetching it.
See also \yii\authclient\clients\exchangeToken().
URL endpoint for the client auth code generation.
See also:
Method Details
{@inheritdoc}
| public void applyAccessTokenToRequest ( $request, $accessToken ) | ||
| $request | ||
| $accessToken | ||
{@inheritdoc}
| protected void defaultName ( ) |
{@inheritdoc}
| protected void defaultTitle ( ) |
{@inheritdoc}
| protected void defaultViewOptions ( ) |
Exchanges short-live (2 hours) access token to long-live (60 days) one.
Note that this method will success for already long-live token, but will not actually prolong it any further. Pay attention, that this method will fail on already expired access token.
See also https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension.
| public yii\authclient\OAuthToken exchangeAccessToken ( yii\authclient\OAuthToken $token ) | ||
| $token | yii\authclient\OAuthToken | Short-live access token. |
| return | yii\authclient\OAuthToken | Long-live access token. |
|---|---|---|
{@inheritdoc}
| public void fetchAccessToken ( $authCode, array $params = [] ) | ||
| $authCode | ||
| $params | ||
Fetches access token from client-specific authorization code.
This make sense for the distributed applications, which provides several Auth clients (web and mobile) to avoid triggering Facebook's automated spam systems.
See also:
| public yii\authclient\OAuthToken fetchClientAccessToken ( $authCode, array $params = [] ) | ||
| $authCode | string | Client auth code. |
| $params | array | |
| return | yii\authclient\OAuthToken | Long-live client-specific access token. |
|---|---|---|
Requests the authorization code for the client-specific access token.
This make sense for the distributed applications, which provides several Auth clients (web and mobile) to avoid triggering Facebook's automated spam systems.
See also:
| public string fetchClientAuthCode ( yii\authclient\OAuthToken $token = null, $params = [] ) | ||
| $token | yii\authclient\OAuthToken|null | Access token, if not set \yii\authclient\clients\accessToken will be used. |
| $params | array | Additional request params. |
| return | string | Client auth code. |
|---|---|---|
{@inheritdoc}
| protected void initUserAttributes ( ) |