Undefined index: openid,无法通过 $driver->getAccessTokenResponse ($code) 获取到返回值?
按照教程,通过 2). 客户端只获取授权码(code)这种方式去做
配置好了config/service.php 里的wechat节点;
通过微信授权链接提取到code填入下方CODE
通过以下代码,
$code = 'CODE';
$driver = Socialite::driver('weixin');
$response = $driver->getAccessTokenResponse($code);
$driver->setOpenId($response['openid']);
$oauthUser = $driver->userFromToken($response['access_token']);
报错:
Undefined index: openid
in Provider.php (line 132)
at HandleExceptions->handleError(8, 'Undefined index: openid', 132, array('code' => '0711ZXnX1Dqy4T0Z9RoX1bi8oX11ZXn4', 'response' => object(Response)))
in Provider.php (line 132)
关于 LearnKu
高认可度评论:
@orange 你退出tinker,再重新进去就好了
注意 code 只能尝试一次,测试过一次以后就需要重新获取。因为code失效或者错误,Socialite没有获取到信息所以报错了
@liyu001989 我是用了一次的 都是重新申请的code
https://learnku.com/courses/laravel-advanc...
这一节你能测试通过?但是在tinker中测试不通过?
确认一下 env 中的 WEIXIN_KEY 和 WEIXIN_SECRET 填写正确了没
@orange 你退出tinker,再重新进去就好了
@zssen 这个是正解
重新获取code即可
.env里面没有配置好WEIXIN_KEY / WEIXIN_SECRET 的话也会有这个报错
重新获取Code就可以了
因为更改了 .env 配置和 ServiceProvider 的代码,所以需要重启 tinker~
@zssen 正解,退出再进
同样踩坑, 退出tinker重进就好了, 建议作者写进去, 没有这个问题,还真不知道怎么解决,把配置挨个对,也不行 :joy:@liyu001989
更改了 .env 配置,需要重启 tinker
建议作者写进教程
Tinker是常驻内存的,这是个常识啊
来报到。也遇到这个问题了。ctrl+z 退出tinker, 再进入。就好了! 谢谢楼上学长的解答!
在确保WEIXIN_KEY和WEXIN_SECRET正确前提下,若重新退出tinker后也如此,可以尝试清除laravel的cache再尝试:
php artisan cache:clear
php artisan config:cache
退出tinker,再重新进 ——正解+1
code失效,或者你的code出错了,复制时把state参数带进去了