이 기사에서는 주로 Java WeChat 공개 플랫폼 개발의 12단계를 자세히 소개합니다. WeChat 사용자 정보 획득에는 특정 참고 가치가 있습니다. 관심 있는 친구는
이전 기사를 참조할 수 있습니다. 토큰 획득, 메뉴 생성 등을 포함한 WeChat 개발 기사. 이 기사에서는 WeChat 공개 플랫폼 개발에서 WeChat 사용자 정보를 얻는 방법에 대해 설명합니다. 이전 기사에서는 WeChat 사용자와 WeChat 간의 연결에 대해 설명했습니다. 공개 계정은 Openid를 통해 연결될 수 있으므로 여기서는 openid를 사용하여 사용자 WeChat 정보를 얻고 간단한 시나리오 애플리케이션을 구현합니다. 새로운 WeChat 사용자가 WeChat 공개 플랫폼을 팔로우하면 자동으로 사진과 문자 메시지, 제목으로 응답합니다. 그래픽 메시지의 내용은 다음과 같습니다. [Dear: XXX, hello! ], 그래픽 메시지의 사진은 아래와 같이 사용자의 WeChat 아바타입니다.
WeChat 사용자 정보 획득에 관한 문서는 mp.weixin을 참조하세요. .qq .com/wiki/1/8a5ce6257f1d3b2afb20f83e72b72ce9.html.
(1) 사용자 WeChat 메시지 획득 구현
팔로워가 공식 계정과 상호 작용하여 메시지를 생성한 후 공식 계정은 팔로워의 OpenID(암호화됨)를 얻을 수 있습니다. WeChat, 각 공식 계정에 대한 각 사용자의 OpenID는 고유합니다. 공식 계정마다 동일한 사용자의 openID가 다릅니다. 공개 계정은 이 인터페이스를 통해 OpenID를 기반으로 닉네임, 아바타, 성별, 도시, 언어, 팔로우 시간 등 기본 사용자 정보를 얻을 수 있습니다.
http 요청 방법: GET api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
에서 여기서는 GetUseInfo.java 메서드 클래스를 작성했습니다. 반환하려면 openid만 전달하면 됩니다(닉네임, 이미지, 성별 [다른 매개변수는 직접 얻을 수 있음]). 코드는 다음과 같이 구현됩니다.
package com.cuiyongzhi.wechat.common; import java.util.HashMap; import com.cuiyongzhi.web.util.GlobalConstants; import com.cuiyongzhi.wechat.util.HttpUtils; import net.sf.json.JSONObject; /** * ClassName: GetUseInfo * @Description: 获取微信用户信息 * @author dapengniao * @date 2016年3月18日 下午2:00:52 */ public class GetUseInfo { /** * @Description: 通过openid获取用户微信信息 * @param @param openid * @param @return * @param @throws Exception * @author dapengniao * @date 2016年3月18日 下午2:01:30 */ public static HashMap<String, String> Openid_userinfo(String openid) throws Exception { HashMap<String, String> params = new HashMap<String, String>(); params.put("access_token", GlobalConstants.getInterfaceUrl("access_token")); //定时器中获取到的token params.put("openid", openid); //需要获取的用户的openid params.put("lang", "zh_CN"); String subscribers = HttpUtils.sendGet( GlobalConstants.getInterfaceUrl("OpenidUserinfoUrl"), params); System.out.println(subscribers); params.clear(); //这里返回参数只取了昵称、头像、和性别 params.put("nickname", JSONObject.fromObject(subscribers).getString("nickname")); //昵称 params.put("headimgurl", JSONObject.fromObject(subscribers).getString("headimgurl")); //图像 params.put("sex", JSONObject.fromObject(subscribers).getString("sex")); //性别 return params; } }
(2) 팔로우 및 답글이미지 및 문자 메시지 구현
팔로우 이벤트에 대한 수동 응답에 그래픽 메시지의 제목과 그림을 설정하고 팔로워에게 응답합니다.
간단한 코드는 다음과 같이 구현됩니다.
//对图文消息 NewsMessage newmsg=new NewsMessage(); newmsg.setToUserName(openid); newmsg.setFromUserName(mpid); newmsg.setCreateTime(new Date().getTime()); newmsg.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_NEWS); if (map.get("Event").equals(MessageUtil.EVENT_TYPE_SUBSCRIBE)) { // 关注事件 System.out.println("==============这是关注事件!"); try { HashMap<String, String> userinfo=GetUseInfo.Openid_userinfo(openid); Article article=new Article(); article.setDescription("欢迎来到崔用志的个人博客:菜鸟程序员成长之路!"); //图文消息的描述 article.setPicUrl(userinfo.get("headimgurl")); //图文消息图片地址 article.setTitle("尊敬的:"+userinfo.get("nickname")+",你好!"); //图文消息标题 article.setUrl("http://www.cuiyongzhi.com"); //图文url链接 List<Article> list=new ArrayList<Article>(); list.add(article); //这里发送的是单图文,如果需要发送多图文则在这里list中加入多个Article即可! newmsg.setArticleCount(list.size()); newmsg.setArticles(list); return MessageUtil.newsMessageToXml(newmsg); } catch (Exception e) { // TODO Auto-generated catch block System.out.println("====代码有问题额☺!"); logger.error(e,e); } }
위 내용은 Java는 openid를 사용하여 사용자 마이크로 정보를 얻습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!