>  기사  >  Java  >  Java는 openid를 사용하여 사용자 마이크로 정보를 얻습니다.

Java는 openid를 사용하여 사용자 마이크로 정보를 얻습니다.

Y2J
Y2J원래의
2017-05-09 11:40:273172검색

이 기사에서는 주로 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) 팔로우 및 답글이미지 및 문자 메시지 구현

첫 번째 부분에 이렇게 나와 있습니다. 공식 계정은 팔로어의 OpenID를 얻을 수 있습니다.] 우리의 시나리오에서는 팔로어의 openid를 얻는

이벤트 가 동시에 사용자의 관심 이벤트입니다. 다음 이벤트의 그래픽 메시지(그래픽 메시지 응답 구현에 대해서는 Java WeChat 공개 플랫폼 개발(5) 텍스트 및 그래픽 메시지 응답 구현을 참조하십시오.) 구현 프로세스:

openid 가져오기 팔로우 이벤트를 통해 사용자 정보 인터페이스를 호출하여 팔로워 관련 인터페이스를 획득합니다.

팔로우 이벤트에 대한 수동 응답에 그래픽 메시지의 제목과 그림을 설정하고 팔로워에게 응답합니다.
간단한 코드는 다음과 같이 구현됩니다.

//对图文消息
 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);
 }
 
 }

마지막으로 결과를 여기서 볼 수 있습니다. 매우 직관적으로 효과를 확인하기 위해 아래와 같이 팔로우를 취소했다가 다시 팔로우했습니다.

[관련 추천]

1.

Java는 무료입니다. 동영상 튜토리얼

YMP 온라인 매뉴얼

3.

Java Annotation 종합 분석

위 내용은 Java는 openid를 사용하여 사용자 마이크로 정보를 얻습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.