- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 yii2-authclient 登录我的网站,收到这样的回复
yii\authclient\clients\Facebook Object ( [authUrl] => https://www.facebook.com/dialog/oauth?display=popup [tokenUrl] => https://graph.facebook.com/oauth/access_token [apiBaseUrl] => https://graph.facebook.com [scope] => email [version] => 2.0 [clientId] => *******[clientSecret] => ********[_returnUrl:yii\authclient\BaseOAuth:private] => http://www.usermodule.com/index.php?r=site%2Fauth&authclient=facebook [_curlOptions:yii\authclient\BaseOAuth:private] => Array ( ) [_accessToken:yii\authclient\BaseOAuth:private] => yii\authclient\OAuthToken Object ( [tokenParamKey] => access_token [tokenSecretParamKey] => oauth_token_secret [createTimestamp] => 1436772538 [_expireDurationParamKey:yii\authclient\OAuthToken:private] => [_params:yii\authclient\OAuthToken:private] => Array ( [access_token] => ****************************** [expires] => 5182933 ) ) [_signatureMethod:yii\authclient\BaseOAuth:private] => Array ( ) [_id:yii\authclient\BaseClient:private] => facebook [_name:yii\authclient\BaseClient:private] => [_title:yii\authclient\BaseClient:private] => [_userAttributes:yii\authclient\BaseClient:private] => [_normalizeUserAttributeMap:yii\authclient\BaseClient:private] => [_viewOptions:yii\authclient\BaseClient:private] => [_events:yii\base\Component:private] => Array ( ) [_behaviors:yii\base\Component:private] => ) Array ( [name] => **** [id] => *****)
这是我的配置
'authClientCollection' => [
'class' => 'yii\authclient\Collection',
'clients' => [
'facebook' => [
'class' => 'yii\authclient\clients\Facebook',
'clientId' => '***',
'clientSecret' => '****',
],
],
]
我能够获取用户名、用户 ID,但不能获取用户电子邮件 ID,为什么?我还应该做什么?
最佳答案
是的,终于得到了解决方案,
当您发出图形 API 请求时
$this->makeSignedRequest('me');
替换为
$this->makeSignedRequest('me?fields=id,name,email');
要么你正在使用 facebook sdk,要么像我一样使用 yii2-eauth 扩展。如果你正在使用 yii2-eauth 那么你需要在 vendor/nodge/yii2-eauth/src/services/FacebookOAuth2Service.php 中更改它
然后添加这一行来读取电子邮件属性
$this->attributes['email'] = $info['email'];
注意:我试过 yii 传递参数的方式,比如
$this->makeSignedRequest('me',array('fields'=>'id,email');
对我不起作用。
解决方案来源: https://developers.facebook.com/docs/php/howto/example_retrieve_user_profile/5.0.0
关于Yii2 authclient 不返回用户的电子邮件 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31377753/
我正在使用 yii2-authclient 登录我的网站,收到这样的回复 yii\authclient\clients\Facebook Object ( [authUrl] => https://w
当点击 facebook 小部件时,它将重定向到此链接并给我错误页面未找到 siteURl/frontend/web/site/auth?authclient=facebook&code=AQB-bu
这只是在过去几天内开始发生的,我的代码没有改变。我是否犯了一个错误,或者这是新的? 这似乎意味着我应该在 firebase forge 中的安全规则中添加一条规则,以允许从我正在处理的域(在本例中为
我正在使用 googleapis和 google auth对于谷歌日历。我已经获取了 calendar event 列表,但是当我尝试插入事件时它会抛出一个错误,即 TypeError: authCl
我正在像这样的一个函数中创建一个 oauth2client 并返回它。实际上,我确实传递了客户 ID、 secret 、重定向 url 和凭据。根据我的检查,这些都是正确的。 var OAuth2 =
我使用 dektrium/yii2-user(在一个项目上)和 yiisoft/yii2-authclient(在另一个项目上)通过 Google 帐户登录。前段时间一切正常,但我想在上次 Compo
我已按照此处的说明进行操作 http://www.yiiframework.com/doc-2.0/yii-authclient-authaction.html ..它对我不起作用..我正在使用 yi
我是一名优秀的程序员,十分优秀!