Scope 参数错误或没有 Scope 权限是怎么回事啊 我用天天动听电脑版授权微信登录就出现了这个 以

微信公众平台开发—利用OAuth2.0获取微信用户基本信息
在借鉴前两篇获取微信用户基本信息的基础下,本人也总结整理了一些个人笔记:如何通过OAuth2.0获取微信用户信息
1、首先在某微信平台下配置OAuth2.0授权回调页面:
2、通过appid构造url获取微信回传code值(appid可在微信平台下找到)
1)、微信不弹出授权页面url:
A、code回传到页面wxProcess2.aspx,不带参数
Response.Redirect("="
"&redirect_uri=http://localhost:8888/wxProcess2.aspx&response_type=code&scope=snsapi_base&state=1#wechat_redirect");&&
B、code回传到页面wxProcess2.aspx,带参数reurl,即wxProcess2.aspx获得code的同时,也能获取reurl的值,具体如下:
Response.Redirect("="
"&redirect_uri=http://localhost:8888/wxProcess2.aspx?reurl=" +
"&response_type=code&scope=snsapi_base&state=1#wechat_redirect");
2)、微信弹出授权页面url:需要用户授权,才能获取code及后面需要获取的用户信息
Response.Redirect("="
"&redirect_uri=http://localhost:8888/wxProcess2.aspx?reurl=" +
"&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect");
说明:微信是否弹出授权页面url的区别只在一个参数scope,不弹出微信授权页面:scope=snsapi_base,弹出微信授权页面:scope=snsapi_userinfo。
微信授权页面如下:
3、通过appid、secret、code构造url,获取微信用户的openid和access
token。appid、secret可在微信平台下找到,code已在上面方法中获取并回传。具体访问url:
+ appid + "&secret=" + appsecret + "&code=" + Code +
"&grant_type=authorization_code
4、通过openid、access token获取用户信息,具体访问url:
+ REFRESH_TOKEN + "&openid=" + OPENID
说明:主要通过访问微信的3个url地址并回传数据,获取微信用户基本信息
====================================================================
具体代码:
1、获取微信code处理页面:wxProcess.aspx
protected void Page_Load(object sender, EventArgs e)
if (!IsPostBack)
&&&&&&&&&&&
string reurl = "";
&&&&&&&&&&&
//传递参数,获取用户信息后,可跳转到自己定义的页面,想怎么处理就怎么处理
&&&&&&&&&&&
if (Request.QueryString["reurl"] != null &&
Request.QueryString["reurl"] != "")
&&&&&&&&&&&
&&&&&&&&&&&&&&&
reurl = Request.QueryString["reurl"].ToString();
&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&&&&&
reurl = "";
&&&&&&&&&&&
&&&&&&&&&&&
string code = "";
&&&&&&&&&&&
//弹出授权页面(如在不弹出授权页面基础下未获得openid,则弹出授权页面,提示用户授权)
&&&&&&&&&&&
if (Request.QueryString["auth"] != null &&
Request.QueryString["auth"] != "" &&
Request.QueryString["auth"] == "1")
&&&&&&&&&&&
&&&&&&&&&&&&&&&
Response.Redirect("="
"&redirect_uri=http://localhost:8888/wxProcess2.aspx?reurl=" +
"&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect");
&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&&&&&
//不弹出授权页面
&&&&&&&&&&&&&&&
Response.Redirect("="
"&redirect_uri=http://localhost:8888/wxProcess2.aspx?reurl=" +
"&response_type=code&scope=snsapi_base&state=1#wechat_redirect");&&&&&&&&&&&
2、获取微信code值回传到自己的页面wxProcess2.aspx:
public string reurl = "";
&&& protected
void Page_Load(object sender, EventArgs e)
if (!IsPostBack)
&&&&&&&&&&&
//获取从wxProcess.aspx传递过来的跳转地址reurl
&&&&&&&&&&&
if (Request.QueryString["reurl"] != null &&
Request.QueryString["reurl"] != "")
&&&&&&&&&&&
&&&&&&&&&&&&&&&
reurl = Request.QueryString["reurl"].ToString();
&&&&&&&&&&&
&&&&&&&&&&&
string code = "";
&&&&&&&&&&&
if (Request.QueryString["code"] != null &&
Request.QueryString["code"] != "")
&&&&&&&&&&&
&&&&&&&&&&&&&&&
//获取微信回传的code
&&&&&&&&&&&&&&&
Request.QueryString["code"].ToString();&&
&&&&&&&&&&&&&&&
OAuth_Token Model = Get_token(code);&
//获取token
&&&&&&&&&&&&&&&
OAuthUser OAuthUser_Model = Get_UserInfo(Model.access_token,
Model.openid );
&&&&&&&&&&&&&&&
if(OAuthUser_Model.openid!=null && OAuthUser_Model.openid
!="")& //已获取得openid及其他信息
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
//在页面上输出用户信息
&&&&&&&&&&&&&&&&&&&
Response.Write("用户OPENID:" + OAuthUser_Model.openid + "
用户昵称:" + OAuthUser_Model.nickname + "
性别:" + OAuthUser_Model.sex + "
所在省:" + OAuthUser_Model.province + "
所在市:" + OAuthUser_Model.city + "
所在国家:" + OAuthUser_Model.country + "
头像地址:" + OAuthUser_Model.headimgurl + "
用户特权信息:" + OAuthUser_Model.privilege);
&&&&&&&&&&&&&&&&&&&
//或跳转到自己的页面,想怎么处理就怎么处理
&&&&&&&&&&&&&&&&&&&
Response.Redirect(reurl);
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
//未获得openid,回到wxProcess.aspx,访问弹出微信授权页面
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
Response.Redirect("wxProcess.aspx?auth=1");
&&&&&&&&&&&&&&&
&&&&&&&&&&&
& &#region 属性
&&& public
string appid = "wxbffa123f";&
//公众微信平台下可以找到
&&& public
string appsecret =
"9d693f7a281115p78445";&
//公众微信平台下可以找到
#endregion
&//根据appid,secret,code获取微信openid、access
&&& protected
OAuth_Token Get_token(string Code)
//获取微信回传的openid、access token
string Str = GetJson("="
+ appid + "&secret=" + appsecret + "&code=" + Code +
"&grant_type=authorization_code");
//微信回传的数据为Json格式,将Json格式转化成对象
OAuth_Token Oauth_Token_Model =
JsonHelper.ParseFromJson(Str);
return Oauth_Token_M
//刷新Token(好像这个刷新Token没有实际作用)
&&& protected
OAuth_Token refresh_token(string REFRESH_TOKEN)
string Str = GetJson("="
+ appid + "&grant_type=refresh_token&refresh_token=" +
REFRESH_TOKEN);
OAuth_Token Oauth_Token_Model =
JsonHelper.ParseFromJson(Str);
return Oauth_Token_M
//根据openid,access token获得用户信息
&&& protected
OAuthUser Get_UserInfo(string REFRESH_TOKEN, string OPENID)
string Str = GetJson("="
+ REFRESH_TOKEN + "&openid=" + OPENID);
OAuthUser OAuthUser_Model = JsonHelper.ParseFromJson(Str);
return OAuthUser_M
//访问微信url并返回微信信息
&&& protected
string GetJson(string url)
WebClient wc = new WebClient();
wc.Credentials = CredentialCache.DefaultC
wc.Encoding = Encoding.UTF8;
string returnText = wc.DownloadString(url);
if (returnText.Contains("errcode"))
&&&&&&&&&&&
//可能发生错误
return returnT
&&& public class
OAuth_Token
public OAuth_Token()
&&&&&&&&&&&
&&&&&&&&&&&
//TODO: 在此处添加构造函数逻辑
&&&&&&&&&&&
//access_token&网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
//expires_in&access_token接口调用凭证超时时间,单位(秒)
//refresh_token&用户刷新access_token
//openid&用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID
//scope&用户授权的作用域,使用逗号(,)分隔
public string _access_
public string _expires_
public string _refresh_
public string _
public string _
public string access_token
&&&&&&&&&&&
set { _access_token = }
&&&&&&&&&&&
get { return _access_ }
public string expires_in
&&&&&&&&&&&
set { _expires_in = }
&&&&&&&&&&&
get { return _expires_ }
public string refresh_token
&&&&&&&&&&&
set { _refresh_token = }
&&&&&&&&&&&
get { return _refresh_ }
public string openid
&&&&&&&&&&&
set { _openid = }
&&&&&&&&&&&
get { return _ }
public string scope
&&&&&&&&&&&
set { _scope = }
&&&&&&&&&&&
get { return _ }
用户信息类
&&& public class
public OAuthUser()
#region 数据库字段
private string _openID;
private string _searchT
private string _
private string _
private string _
private string _
private string _
private string _headimgU
private string _
#endregion
#region 字段属性
/// 用户的唯一标识
public string openid
&&&&&&&&&&&
set { _openID = }
&&&&&&&&&&&
get { return _openID; }
public string SearchText
&&&&&&&&&&&
set { _searchText = }
&&&&&&&&&&&
get { return _searchT }
/// 用户昵称
public string nickname
&&&&&&&&&&&
set { _nickname = }
&&&&&&&&&&&
get { return _ }
/// 用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
public string sex
&&&&&&&&&&&
set { _sex = }
&&&&&&&&&&&
get { return _ }
/// 用户个人资料填写的省份
public string province
&&&&&&&&&&&
set { _province = }
&&&&&&&&&&&
get { return _ }
/// 普通用户个人资料填写的城市
public string city
&&&&&&&&&&&
set { _city = }
&&&&&&&&&&&
get { return _ }
/// 国家,如中国为CN
public string country
&&&&&&&&&&&
set { _country = }
&&&&&&&&&&&
get { return _ }
用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空
public string headimgurl
&&&&&&&&&&&
set { _headimgUrl = }
&&&&&&&&&&&
get { return _headimgU }
/// 用户特权信息,json 数组,如微信沃卡用户为(chinaunicom)其实这个格式称不上JSON,只是个单纯数组
public string privilege
&&&&&&&&&&&
set { _privilege = }
&&&&&&&&&&&
get { return _ }
#endregion
将Json格式数据转化成对象
&&& public class
JsonHelper
/// 生成Json格式&
public static string GetJson(T obj)
&&&&&&&&&&&
DataContractJsonSerializer json = new
DataContractJsonSerializer(obj.GetType());
&&&&&&&&&&&
using (MemoryStream stream = new MemoryStream())
&&&&&&&&&&&
&&&&&&&&&&&&&&&
json.WriteObject(stream, obj);
&&&&&&&&&&&&&&&
string szJson = Encoding.UTF8.GetString(stream.ToArray()); return
&&&&&&&&&&&
/// 获取Json的Model&
public static T ParseFromJson(string szJson)
&&&&&&&&&&&
T obj = Activator.CreateInstance();
&&&&&&&&&&&
using (MemoryStream ms = new
MemoryStream(Encoding.UTF8.GetBytes(szJson)))
&&&&&&&&&&&
&&&&&&&&&&&&&&&
DataContractJsonSerializer serializer = new
DataContractJsonSerializer(obj.GetType());
&&&&&&&&&&&&&&&
return (T)serializer.ReadObject(ms);
&&&&&&&&&&&
&输出微信用户信息:
CSDN博客地址:
CSDN源码下载地址:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。1. 口袋通刚接入的时候,很多童靴会遇到Scope参数错误或没有Scope权限问题,这是由于没有进行OAuth2.0网页授权或者授权没有成功的原因。进入微信公众平台后台,在开发中中心处修改OAuth2.0网页授权。
2. 在OAuth2.0网页授权中输入
3.重新用微信访问试试。
喜欢我们的文章请您与朋友分享:
相关文章:
关于SEO,SEM,网站运营,更关乎那些小小的遐想与风花雪月,个人读书笔记微信开发: scope参数错误或没有scope权限解决方法
查看: 3529|
摘要: scope为snsapi_userinfo未关注者点击授权提示
scope参数错误或没有scope权限 解决方法 出现这种错误网上查出现有的原因是:订阅号没有相关的权限账号没有认证,没有相关的权限那么这里遇到问题两种都不是。开发账号
scope为snsapi_userinfo&未关注者点击授权提示 & scope参数错误或没有scope权限 解决方法 &出现这种错误网上查出现有的原因是:订阅号没有相关的权限账号没有认证,没有相关的权限那么这里遇到问题两种都不是。开发账号是 服务号,而且也是认证号。解决方法:错误配置:https://open./connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%%2Foauth_response.php&scope=snsapi_userinfo&response_type=code&state=STATE#wechat_redirect正确的配置:https://open./connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect& 原因就是scope的位置不一样!!!&当&scope 为&snsapi_base的时候没有影响。但是scope为snsapi_userinfo &就会提示&scope参数错误或没有scope权限 。就是这个OAUTH2.0里绑定授权域名的问题.............进入微信公众号平台,,里面有认证后的高级接口...名为"OAuth2.0网页授权",点击修改,把你们系统用的根域名写上就行了如"",就可以了.....
上一篇:下一篇:
discuz x3.2 Comsenz Inc.后使用快捷导航没有帐号?
微社区提示:Scope 参数错误或没有 Scope 权限
查看: 3400|回复: 1
马上注册,一起探讨正确快速的建站方法
才可以下载或查看,没有帐号?
开通微信登陆,微信公众号访问微社区 提示:Scope 参数错误或没有 Scope 权限
上一篇:下一篇:
& & 全心全意为站长提供简单易懂的快速建站教程
出现这种错误网上查出现有的原因是:
1、订阅号没有相关的权限
2、账号没有认证,没有相关的权限
也可能是微社区最新升级为QQ部落问题导致的
微社区要改名为兴趣部落&&你知道多少呢?
&&站帮网专注的& && &
注册天数超过365天的论坛元老
拥有元宝超过8000的土豪大大
站帮网管理员
站帮网管理员
在站长互助版区帮助其他站长解决100次答疑
至尊站长勋章
拥有帮币超过10000的至尊站长
通过任务在聊吧发帖量达到1000帖的灌水达人们
在线时间超过2000小时的超长待机王
&CopyRight
深圳市站帮科技有限公司 版权所有 | &&&微信公众平台开发教程(十)Scope参数错误或没有Scope权限解决方法
时间: 23:11:42
&&&& 阅读:25365
&&&& 评论:
&&&& 收藏:0
标签:一 报错信息:
二 出现原因分析:
出现这种错误网上查出现有的原因是:
1. 订阅号没有相关的权限
2. 账号没有认证,没有相关的权限
那么这里遇到问题两种都不是。开发账号是 服务号,而且也是认证号。
三 解决方案:
需要在中配置授权回调页面域名。
1.首先检查您的微信号是服务号还是订阅号,如果是订阅号恭喜你中奖了,因为腾讯没开放接口出来。
在开发者中心:
2.确保你已是服务号,且已通过微信认证.
注:&授权回调域名配置规范为全域名并且不带http,比如需要网页授权的域名为:,
配置以后此域名下面的页面/music.html 、 /login.html 都可以进行OAuth2.0鉴权。
、 http://qq.com无法进行OAuth2.0鉴权。
这里我们填写我自己论坛的一个域名为 。
3.可能是配置错误
https://open./connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%%2Foauth_response.php&scope=snsapi_userinfo&response_type=code&state=STATE#wechat_redirect
正确的配置:
https://open./connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
原因就是scope的位置不一样!!!
当 scope 为 snsapi_base的时候没有影响。但是scope为snsapi_userinfo 就会提示 scope参数错误或没有scope权限
&&&& &&&&&&
&& &&&&&&&&&&
版权所有 鲁ICP备号-4
打开技术之扣,分享程序人生!

我要回帖

更多关于 天天动听官网 的文章

 

随机推荐