я собираюсь ошибка лайк
Неизвестная недвижимость — yii \ base \ UnknownPropertyException
Установка неизвестного свойства: 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',
от web.php. Работает. Я получаю все необходимые данные, кроме email
, Но, проблема в : Я не получаю email
пользователя, пытающегося войти в систему. Любая идея, как я могу получить. Любая подсказка / предложение будет большой помощью для меня. Благодарю.
Наконец-то я понял.
Этот ответ для тех, кто только что установил API Twitter или же застрял в середине.
Следуйте шаг за шагом.
1) Если вы уже создалиКлюч потребителя (ключ API)» & «Потребительский секрет (API Secret)».
Затем перейдите непосредственно к Point-5.
В противном случае,
Запустите эту команду php composer.phar require --prefer-dist yiisoft/yii2-authclient "*"
в вашей системе. И генерироватьКлюч потребителя (ключ API)» & «Потребительский секрет (API Secret)«. Следить Создать новое приложение & Документация приложения Twitter
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()
И, функция 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 (Посмотреть)
<?= 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 будет изменен только путь к файлу. ]
Связанные Поиск :
Других решений пока нет …