Возврат параметров access_token

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
devv
Сообщения: 39
Зарегистрирован: 2015.04.26, 22:37

Возврат параметров access_token

Сообщение devv »

Пользуюсь встроенным расширением Yii2/authclient, требуется получить доступ к e-mail. Передаю соответствующие scope, но не понимаю, как вытащить мыло из запроса. В дебаггере оно валяется примерно так:

Код: Выделить всё

object(yii\authclient\OAuthToken)[116]
  public 'tokenParamKey' => string 'access_token' (length=12)
  public 'tokenSecretParamKey' => string 'oauth_token_secret' (length=18)
  public 'createTimestamp' => int 1431278283
  private '_expireDurationParamKey' => string 'expires_in' (length=10)
  private '_params' => 
    array (size=4)
      'access_token' => string '8dbdab190e5d4e5d6f4617ca05eebc8767306d84cce0bd30cf002662d94125c60d71' (length=85)
      'expires_in' => int 86399
      'user_id' => int 93807
      'email' => string '404@gmail.com'
В документации по расширению мало что понял, кому не сложно, помогите советом. Пример кода

Код: Выделить всё

public function successOAuthCallback($client)
    {
        $attributes = $client->getUserAttributes();
        /*
        try {
            $emails = $client->api('');

        } catch (\yii\authclient\InvalidResponseException $e) {
            // no email :-(
        }*/

        $user = User::find()->where([
            'oauth_client' => $client->getName(),
            'oauth_client_user_id' => ArrayHelper::getValue($attributes, 'id')
        ])->one();
        if (!$user) {
            $user = new User();
            $user->scenario = 'oauth_create';
           
                $user->email = $emails;
            
            $user->oauth_client = $client->getName();
            $user->oauth_client_user_id = ArrayHelper::getValue($attributes, 'id');
            $password = Yii::$app->security->generateRandomString(8);
            $user->setPassword($password);
            if ($user->save()) {
                $user->afterSignup();
            }
        }
    }
 
Последний раз редактировалось devv 2015.05.10, 20:53, всего редактировалось 1 раз.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Возврат параметров access_token

Сообщение zelenin »

почему в код стесняемся заглянуть? https://github.com/yiisoft/yii2-authcli ... en.php#L86
devv
Сообщения: 39
Зарегистрирован: 2015.04.26, 22:37

Re: Возврат параметров access_token

Сообщение devv »

Код: Выделить всё

$emails = $client->getParams();
var_dump($emails);
 
Calling unknown method: yii\authclient\clients\VKontakte::getParams()
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Возврат параметров access_token

Сообщение zelenin »

devv писал(а):

Код: Выделить всё

$emails = $client->getParams();
var_dump($emails);
Calling unknown method: yii\authclient\clients\VKontakte::getParams()
а вы разве в своем сообщении email показываете в Vkontakte? а я ссылку вам кинул тоже на Vkontakte?
Аватара пользователя
asset
Сообщения: 245
Зарегистрирован: 2012.12.04, 20:50
Откуда: Казахстан

Re: Возврат параметров access_token

Сообщение asset »

Не понятно. Тебе нужен майл который авторизацию прошел?

вконтакте возращает массив данных если успешно прошел авторизацию.

Код: Выделить всё

Array
(
    [uid] => 
    [first_name] => 
    [last_name] => 
    [sex] => 2
    [nickname] => 
    [screen_name] =>
    [bdate] => 
    [city] => 
    [country] => 
    [timezone] => 5
    [photo] =>
    [id] => 
)
или я что-то не понимаю.
devv
Сообщения: 39
Зарегистрирован: 2015.04.26, 22:37

Re: Возврат параметров access_token

Сообщение devv »

zelenin, не понимаю, о чём вы. Мне необходимо именно в этом экшене получить доступ к параметрам, вытянуть мыло, добавить в базу и всё. Но доступ к параметрам я получил пока только визуально
asset, думаю да. То что у вас в коде, это json ответ метода users.get, который токена не требует, а мыло приходит только с токеном.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Возврат параметров access_token

Сообщение zelenin »

devv писал(а):zelenin, не понимаю, о чём вы. Мне необходимо именно в этом экшене получить доступ к параметрам, вытянуть мыло, добавить в базу и всё. Но доступ к параметрам я получил пока только визуально
asset, думаю да. То что у вас в коде, это json ответ метода users.get, который токена не требует, а мыло приходит только с токеном.
вы в своем первом сообщении показали где лежит мыло и спрашиваете как его оттуда получить. я вам указал метод. А вы почему-то этот метод используете в другом месте, которое мыло не содержит. Так определитесь уже откуда вы хотите мыло достать.
devv
Сообщения: 39
Зарегистрирован: 2015.04.26, 22:37

Re: Возврат параметров access_token

Сообщение devv »

Ткните, где его можно использовать. Просто в иных местах он не нужен
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Возврат параметров access_token

Сообщение zelenin »

devv писал(а):Ткните, где его можно использовать. Просто в иных местах он не нужен
давайте сначала: с чего вы взяли что у вас есть доступ к мылу?
devv
Сообщения: 39
Зарегистрирован: 2015.04.26, 22:37

Re: Возврат параметров access_token

Сообщение devv »

zelenin писал(а):
devv писал(а):Ткните, где его можно использовать. Просто в иных местах он не нужен
давайте сначала: с чего вы взяли что у вас есть доступ к мылу?
Потому что в всплывающем окне я дал разрешение на использование мейла, он пришел с токеном, и в документации vk.com/dev написано, как и в других источниках где рассматривается oauth авторизация. А почему доступа может не быть?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Возврат параметров access_token

Сообщение zelenin »

devv писал(а):он пришел с токеном
почему не вытащите из токена?
devv
Сообщения: 39
Зарегистрирован: 2015.04.26, 22:37

Re: Возврат параметров access_token

Сообщение devv »

zelenin писал(а):
devv писал(а):он пришел с токеном
почему не вытащите из токена?
Вместе с ним, как раз и лежит в массиве _params, доступ к которому я из коллбэка получить не могу. Ну, пытался по разному, вот и прошу помощи, впервые с такой авторизацией имею дело
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Возврат параметров access_token

Сообщение zelenin »

devv писал(а):
zelenin писал(а):
devv писал(а):он пришел с токеном
почему не вытащите из токена?
Вместе с ним, как раз и лежит в массиве _params, доступ к которому я из коллбэка получить не могу. Ну, пытался по разному, вот и прошу помощи, впервые с такой авторизацией имею дело
токен из клиента можно получить используя getAccessToken, а параметры достать из самого токена используя метод, который я выше написал с ссылкой.
devv
Сообщения: 39
Зарегистрирован: 2015.04.26, 22:37

Re: Возврат параметров access_token

Сообщение devv »

Да, все получилось, раньше только мог достучаться с помощью getAccessToken(), но не знал как достать параметр
Закрыто