【发布时间】:2016-03-29 12:29:48
【问题描述】:
我收到错误,比如
未知属性 – yii\base\UnknownPropertyException
设置未知属性:yii\authclient\clients\Twitter::requestEmail
每当我在 web.php 中将'requestEmail' => 'true', 包含在'authClientCollection' => [ 中以用于components 时
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>
.
.
但是,一旦我从 web.php 中省略了 'requestEmail' => 'true', 行。它正在工作。我正在获取除email 之外的所有必需数据。但是,问题是:我没有收到email 的用户尝试登录。任何想法,我怎么能得到。任何提示/建议都会对我有很大帮助。谢谢。
【问题讨论】:
-
我认为现在可以获取用户的电子邮件,请试试这个:stackoverflow.com/a/33867823/386579
-
是的@shasikanth:我发送了那个请求。等待批准。让我们看看发生了什么 。 谢谢..
-
嗨@shasikanth:我收到来自推特的邮件,说明“请求电子邮件访问权限”。我按照他们在邮件中所说的步骤进行操作。但是,即使我无法访问
email。你对此有什么想法吗? ? -
不知道为什么它无法获取电子邮件。可能是您正在尝试在本地主机中。也可以尝试使用任何公共 URL。
-
嗨@jekaby:我得到了解决方案。即使我将其发布为答案。现在,我得到了 email 的价值。感谢您的回复。
标签: php yii2 yii2-basic-app yii2-api