|
公司业务需要获取用户观众公众号状态,即确定进入系统的用户是否关注了该公众号,根据这个结果进行相应的动作。
获取用户信息中有subscribe这个字段,其中==1表示关注了该公众号,==0表示没有关注该公众号。
通过调研,看文档
点击打开链接
点击打开链接2
调研,只有在微信的unionid机制下才能获取这个值,而在sns(我称之为)的模式下只能获得用户头像、昵称信息等信息
unionid机制下的信息:
{
"subscribe": 1,
"openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M",
"nickname": "Band",
"sex": 1,
"language": "zh_CN",
"city": "广州",
"province": "广东",
"country": "中国",
"headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4
eMsv84eavHiaiceqxibJxCfHe/0",
"subscribe_time": 1382694957,
"unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
"remark": "",
"groupid": 0,
"tagid_list":[128,2]
} sns机制下的信息:
{
"openid":" OPENID",
" nickname": NICKNAME,
"sex":"1",
"province":"PROVINCE"
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",
"privilege":[
"PRIVILEGE1"
"PRIVILEGE2"
],
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
} 通过上文给出的超链可以看出两种方式的请求url略有不一样,参数到是没有什么差别。
下文给出sns这种方式java代码实现: HttpUriRequest httpUriRequest = RequestBuilder.get()
.setUri("https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code")
.build();
|