微信使用网页授权获取用户基本信息

有时候用户没有关注某个公众号,但是有些地方公众号需要获取到这个用户的信息,正常情况下,没有关注是获取不到的,但是微信提供了OAuth2.0来完成网页授权,请看例子,例子使用的是ruby代码

1,首先你要在公众号上设置授权的回调域名,如下:
www.example.com(不需要加http://)
这样设置后,只要在这个域名下面的页面都可调起网页授权,当然有几个不能授权,具体可以官方文档

2,设置好授权回调域名后,接下来就要引导用户进入授权页面,需要注意的是,个人觉得授权一次就够了,只要第一次进来判断当前微信用户信息是否存在,如果不存在可调起授权,如果有的话有不需要了,这样可避免多次调用的问题,至于怎么判断,我是用session来做的,授权后将用户信息保存到session里,第二次进来如果session有值,说明已经用户信息了,我的例子只要获取到用户的open_id就可以,所以用的scope的参数是snsapi_base代码如下

def get_wx_user_info

  app_id = "XXXXXXX"   

  oauth_url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=#      {app_id}&redirect_uri=#              {Rack::Utils.escape(request.url)}&response_type=code&scope=snsapi_base#wechat_redirect"

  redirect_to oauth_url if session[:wx_user_id].blank?

end

3,通过code来获取用户的open_id

if params[:code].present?

  app_id = "XXXXXXXX"

  app_secret = "xxxxxxx"     

  url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=#     {app_id}&secret=#{app_secret}&code=#{params[:code]}&grant_type=authorization_code"

  result = RestClient.get(url)

  data = JSON(result)

  return redirect_to "#{request.url}"

end

因为我只要获取用户的open_id,所以到这里就算完成了,只要将json数据解析出来就OK了
如果你要拉取用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值