On this page
Class yii\authclient\clients\Facebook
Inheritance | yii\authclient\clients\Facebook » yii\authclient\OAuth2 » yii\authclient\BaseOAuth » yii\authclient\BaseClient » yii\base\Component » yii\base\Object |
---|---|
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.
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
$apiBaseUrl public property
API base URL. This field will be used as yii\httpclient\Client::$baseUrl value of $httpClient. Note: changing this property will take no effect after $httpClient is instantiated.
public string $apiBaseUrl = 'https://graph.facebook.com'
$attributeNames public property (available since version 2.0.5)
List of attribute names, which should be requested from API to initialize user attributes.
public array $attributeNames = ['name', 'email']
$authUrl public property
Authorize URL.
public string $authUrl = 'https://www.facebook.com/dialog/oauth'
$autoExchangeAccessToken public property (available since version 2.1.3)
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().
public boolean $autoExchangeAccessToken = false
$autoRefreshAccessToken public property
Whether to automatically perform 'refresh access token' request on expired access token.
public boolean $autoRefreshAccessToken = false
$clientAuthCodeUrl public property (available since version 2.1.3)
URL endpoint for the client auth code generation.
See also:
- https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension
- fetchClientAuthCode()
- fetchClientAccessToken()
public string $clientAuthCodeUrl = 'https://graph.facebook.com/oauth/client_code'
$scope public property
Auth request scope.
public string $scope = 'email'
$tokenUrl public property
Token request URL endpoint.
public string $tokenUrl = 'https://graph.facebook.com/oauth/access_token'
Method Details
applyAccessTokenToRequest() public method
Applies access token to the HTTP request instance.
public void applyAccessTokenToRequest ( $request, $accessToken ) | ||
---|---|---|
$request | yii\httpclient\Request | HTTP request instance. |
$accessToken | yii\authclient\OAuthToken | Access token instance. |
defaultName() protected method
Generates service name.
protected string defaultName ( ) | ||
---|---|---|
return | string | Service name. |
defaultTitle() protected method
Generates service title.
protected string defaultTitle ( ) | ||
---|---|---|
return | string | Service title. |
defaultViewOptions() protected method
Returns the default $viewOptions value.
Particular client may override this method in order to provide specific default view options.
protected array defaultViewOptions ( ) | ||
---|---|---|
return | array | List of default $viewOptions |
exchangeAccessToken() public method (available since version 2.1.3)
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. |
fetchAccessToken() public method
Fetches access token from authorization code.
public yii\authclient\OAuthToken fetchAccessToken ( $authCode, array $params = [] ) | ||
---|---|---|
$authCode | string | Authorization code, usually comes at $_GET['code']. |
$params | array | Additional request params. |
return | yii\authclient\OAuthToken | Access token. |
throws | yii\web\HttpException | on invalid auth state in case \yii\authclient\clients\enableStateValidation is enabled. |
fetchClientAccessToken() public method (available since version 2.1.3)
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:
- https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension
- fetchClientAuthCode()
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. |
fetchClientAuthCode() public method (available since version 2.1.3)
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:
- https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension
- fetchClientAccessToken()
public string fetchClientAuthCode ( yii\authclient\OAuthToken $token = null, $params = [] ) | ||
---|---|---|
$token | yii\authclient\OAuthToken|null | Access token, if not set $accessToken will be used. |
$params | array | Additional request params. |
return | string | Client auth code. |
initUserAttributes() protected method
Initializes authenticated user attributes.
protected array initUserAttributes ( ) | ||
---|---|---|
return | array | Auth user attributes. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-authclient-clients-facebook.html