Я получаю ошибку, как
Неизвестное свойство – yii \ base \ UnknownPropertyException
- model-> save () Не работает в Yii2
- Два разных макета для гостевого пользователя и вошли в систему User-Yii2
- yii2: Обновить значения в двух таблицах с помощью действия одного контроллера?
- Радио-кнопка - Yii2-Basic-App
- после внесения или изменения пароля Пользователь не регистрируется в Yii2
Установка неизвестного свойства : yii \ authclient \ clients \ Twitter :: requestEmail
Всякий раз, когда я 'requestEmail' => 'true',
в 'authClientCollection' => [
для components
в web.php
web.php
$config = [ . . 'components' => [ . . 'authClientCollection' => [ 'class' => 'yii\authclient\Collection', 'clients' => [ 'twitter' => [ 'class' => 'yii\authclient\clients\Twitter', 'requestEmail' => 'true', 'consumerKey' => 'IFK2OMG0rKIFK2Jt4rLvw', 'consumerSecret' => 'ImTprQzaOMG0rKZsZiPDIvwIFK2aOMG0rKZsZiPD', ], ], ], ],
UsersController.php (контроллер)
class UsersController extends CommonController { . . public function actions() { return [ . . 'auth' => [ 'class' => 'yii\authclient\AuthAction', 'successCallback' => [$this, 'oAuthSuccess'], ], ]; } . . public function oAuthSuccess($client) { // get user data from client $userAttributes = $client->getUserAttributes(); var_dump($userAttributes); die; // do some thing with user data. for example with $userAttributes['email'] } }
login.php (Просмотр)
. . <p class="text-center"> <?= yii\authclient\widgets\AuthChoice::widget([ 'baseAuthUrl' => ['/users/users/auth'] ]) ?> </p> . .
Но, как только я 'requestEmail' => 'true',
строку 'requestEmail' => 'true',
из web.php . Работает. Я получаю все необходимые данные, кроме email
. Но проблема в том, что я не получаю email
пользователя, пытающегося войти в систему. Любая идея, как я могу получить. Любой намек / предложение будет большой помощью для меня. Благодарю.
Наконец, я понял.
Этот ответ предназначен для тех, кто только что установил API Twitter или застрял в середине .
Выполните шаг за шагом.
1) Если вы уже создали « Ключ потребителя (API-ключ) » и « Секрет потребителя (секрет API) ». Затем, прямо до пункта 5. Else. Для запуска этой команды php composer.phar require --prefer-dist yiisoft/yii2-authclient "*"
в вашей системе. И, сгенерируйте « Ключ потребителя (API-ключ) » и « Секрет потребителя (секрет API) ». Следуйте за созданием новой приложения App & Twitter App Documentation
2) В web.php
$config = [ . . 'components' => [ . . 'authClientCollection' => [ 'class' => 'yii\authclient\Collection', 'clients' => [ 'twitter' => [ 'class' => 'yii\authclient\clients\Twitter', 'consumerKey' => 'Generated Consumer Key (API Key)', 'consumerSecret' => 'Generated Consumer Secret (API Secret)', ], ], ], ],
3) В YourController.php (Контроллер): добавьте раздел auth
в actions()
функции actions()
И, функция oAuthSuccess($client)
(Как я объявил)
class UsersController extends CommonController { . . public function actions() { return [ . . 'auth' => [ 'class' => 'yii\authclient\AuthAction', 'successCallback' => [$this, 'oAuthSuccess'], ], ]; } . . public function oAuthSuccess($client) { // get user data from client $userAttributes = $client->getUserAttributes(); var_dump($userAttributes); die; // do some thing with user data. for example with $userAttributes['email'] } . . }
4) В YourView.php (View)
<?= yii\authclient\widgets\AuthChoice::widget([ 'baseAuthUrl' => ['/users/users/auth'] ]) ?>
5) Отправьте заявку на поддержку в твиттер для белого списка. Выберите I need access to special permissions
и заполните поле и отправьте его.
6) Через несколько минут / часов вы получите сообщение электронной почты / тему « Запросить доступ к электронной почте ». Электронная почта сообщит вам, чтобы вы зашли на сайт apps.twitter.com .
После успешного входа в систему,
Application Name
. Privacy Policy URL
и « Terms of Service URL
. Сохраните его с помощью кнопки « Update Settings
. Request email addresses from users
. И сохраните его с помощью кнопки « Update Settings
. Application Actions
». Consumer Key (API Key)
и Consumer Secret (API Secret)
сохраните его в файле Web.php . В конце,
7) Перейти в подкаталоги:
Root Folder -> vendor -> yiisoft -> yii2-authclient -> clients -> Twitter.php
Twitter.php
+ Изменить
protected function initUserAttributes() { return $this->api('account/verify_credentials.json', 'GET'); }
к
protected function initUserAttributes() { return $this->api('account/verify_credentials.json', 'GET', ['include_email' => 'true']); }
[ Примечание. Я использую Yii2-App-Basic. В Yii2-App-Advanced, только путь к файлу будет изменен. ]
Поиск по сайту :