. * * Example application configuration: * * ~~~ * 'components' => [ * 'authClientCollection' => [ * 'class' => 'yii\authclient\Collection', * 'clients' => [ * 'vkontakte' => [ * 'class' => 'yii\authclient\clients\VKontakte', * 'clientId' => 'vkontakte_client_id', * 'clientSecret' => 'vkontakte_client_secret', * ], * ], * ] * ... * ] * ~~~ * * @see http://vk.com/apps.php?act=add&site=1 * @see http://vk.com/developers.php?oid=-1&p=users.get * * @author Paul Klimov * @since 2.0 */ class VKontakte extends OAuth2 { /** * @inheritdoc */ public $authUrl = 'http://api.vk.com/oauth/authorize'; /** * @inheritdoc */ public $tokenUrl = 'https://api.vk.com/oauth/access_token'; /** * @inheritdoc */ public $apiBaseUrl = 'https://api.vk.com/method'; /** * @inheritdoc */ protected function initUserAttributes() { $attributes = $this->api('users.get.json', 'GET', [ 'fields' => implode(',', [ 'uid', 'first_name', 'last_name', 'nickname', 'screen_name', 'sex', 'bdate', 'city', 'country', 'timezone', 'photo' ]), ]); return $attributes; } /** * @inheritdoc */ protected function apiInternal($accessToken, $url, $method, array $params) { $params['uids'] = $accessToken->getParam('user_id'); $params['access_token'] = $accessToken->getToken(); return $this->sendRequest($method, $url, $params); } /** * @inheritdoc */ protected function defaultName() { return 'vkontakte'; } /** * @inheritdoc */ protected function defaultTitle() { return 'VKontakte'; } }