随着微信的功能越来越强大,越多越多人投入到微信开发。在微信公众平台的开发过程中,不少开发者会遇到scope参数错误或没有scope权限这样的问题。
而出现这种错误的原因一般由三种:
订阅号没有相关的权限
账号没有认证,没有相关的权限
scope 参数位置错误
第一种原因意味着微信公众号为订阅号是没有这权限,公众号必须为服务号。
第二种原因公众号不仅仅要服务号,还必须通过微信认证,才能拥有这种权限。
上诉两种情况皆为没有scope权限。
而如果以上两种原因都不是,开发账号是服务号,而且也是认证号。那就剩最后一个原因:scope 参数位置错误。
而这种原因是因为scope的位置不一样
解决方案:
需要在OAuth2.0网页授权中配置授权回调页面域名。
如:
1.首先检查您的微信号是服务号还是订阅号,如果是订阅号恭喜你中奖了,因为腾讯没开放接口出来。
在开发者中心:
2.确保你已是服务号,且已通过微信认证.
注: 授权回调域名配置规范为全域名并且不带http,比如需要网页授权的域名为:www.qq.com,
配置以后此域名下面的页面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以进行OAuth2.0鉴权。
但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com无法进行OAuth2.0鉴权。
这里我们填写我自己论坛的一个域名为 www.trustauth.cn。
3.可能是配置错误
如
错误配置:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Ftrustauth.cn%2Foauth_response.php&scope=snsapi_userinfo&response_type=code&state=STATE#wechat_redirect
正确的配置:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Ftrustauth.cn%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
当 scope 为 snsapi_base的时候没有影响。但是scope为snsapi_userinfo 就会提示 scope参数错误或没有scope权限