在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。
从接口文档我们可以知道要想获取到用户的openid,首先我们得经过用户同意授权获取到code,然后通过code换取网页授权access_token。
在这里我们需要根据自己的appid引导用户访问链接进行授权操作(其中分为静默授权和用户点击同意授权,具体可查看官方文档),然后我们就可以在我们自己设置的回调地址(redirect_uri)中获取到我们需要的code(回调地址会携带code=code&state=MQ这两个参数,我们只需要获取到我们需要的code即可)。
参考链接(请在微信客户端中打开此链接体验)一:
scope为snsapi_base
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect
参考链接(请在微信客户端中打开此链接体验)二:
scope为snsapi_userinfo
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
获取code后,请求以下链接获取access_token:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
这里我们只需要入参appid、secret、code、grant_type即可成功获取到access_token和openid了
注意:这里获取用户信息接口需要之前获取code是接口的入参scope=snsapi_userinfo才能直接获取用户信息
请求示例:
接口调用请求说明 http请求方式: GET
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
给个官方文档地址:https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html
请自行按照官方文档就行设置,这里不进行过多讲解。简单来说就是设置好自己的模版后拿到模版ID(template_id),然后通过用户的OpenId和template_id就可以发送模版消息给到用户。
http请求方式: POST
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
请求示例:
{ "touser":"OPENID", "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY", "url":"http://weixin.qq.com/download", "miniprogram":{ "appid":"xiaochengxuappid12345", "pagepath":"index?foo=bar" }, "data":{ "first": { "value":"恭喜你购买成功!", "color":"#173177" }, "keyword1":{ "value":"巧克力", "color":"#173177" }, "keyword2": { "value":"39.8元", "color":"#173177" }, "keyword3": { "value":"2014年9月22日", "color":"#173177" }, "remark":{ "value":"欢迎再次购买!", "color":"#173177" } } }
参数说明:
只要看到如下返回信息说明模版信息已经发送成功!