微信公众号接口

时间:2024-04-17 16:30:23

 

  微信有2个ACCESS_TOKEN,

  1,基础接口的token 获取接口是  

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

  2,用户网页授权access_token 获取接口地址是

  https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

  网页授权access_token 需要通过code去获取

   code是怎么来的,是通过调用下面接口来获取的

   https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

  注意这个接口中有个参数scope 默认有2个值snsapi_base和snsapi_userinfo,这个接口会根据scope 来生成不同的code并且获取不同作用的access_token ,不管scope传什么值都能在得到对应access_token的同时得到open_id, 如果你只需要得到opend_id 那使用snsapi_base参数到此结束了,如果需要获取用户的其他信息比如 昵称 地址 就要snsapi_userinfo 会弹出授权

 

 3 怎么获取用户信息那就调用下面接口

  https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN

 很明显这个接口中的access_token是第二步获取code的时候scope 参数传snsapi_userinfo来换取的access_token

 

 4 微信还有一个获取用户基本信息的接口 但是 这个接口需要你关注了公众号

https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN  (此接口的access_token 是接口基础调用access_token 不是网页授权access_token)

微信的解释:是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。

 

5.下面是例子 注意是GET请求 生成微信授权连接

https://open.weixin.qq.com/connect/oauth2/authorize?
appid=XXXXX 这个是appid 可以在你微信公众平台中的 基础配置中找到 
&
redirect_uri=这里填写的是回调地址 也就是微信登录后 返回访问的地址 一般会填写后台地址 因为回调是会带有code值然后后台可以通过code拿到用户access_token  *重点是你的回调地址需要使用urlEncode进行连接处理 直接百度urlEncode 有网页版帮忙处理
&
response_type=code 这个是返回类型 不要改 返回类型,请填写code
&
scope=这里填写登录类别 也就是我们上面说的 静默授权或者是手动授权 snsapi_base(静默)/snsapi_userinfo(手动)
&
state=123  我们可以自定义参数 重定向后会带上state参数,可以填写a-zA-Z0-9的参数值,最多128字节
#wechat_redirect 这个是微信必填参数 不能改变


下面是给出的案例

静默 https://open.weixin.qq.com/connect/oauth2/authorize?appid=XXXXXX&redirect_uri=http%3a%2f%2fghs.david.com%2fauth&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect


手动 https://open.weixin.qq.com/connect/oauth2/authorize?appid=XXXXXX&redirect_uri=http%3a%2f%2fghs.david.com%2fauth&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

这两个就是从前台发起的授权请求