Heim  >  Artikel  >  Java  >  Java verwendet openid, um Benutzer-Mikroinformationen abzurufen

Java verwendet openid, um Benutzer-Mikroinformationen abzurufen

Y2J
Y2JOriginal
2017-05-09 11:40:273224Durchsuche

In diesem Artikel wird hauptsächlich der zwölfte Schritt der Entwicklung der öffentlichen WeChat-Plattform im Detail vorgestellt. Der Erwerb von WeChat-Benutzerinformationen hat einen gewissen Referenzwert. Interessierte Freunde können sich auf die vorherige

-Serie beziehen von WeChat-Entwicklungsartikeln, einschließlich Token-Erwerb, Menüerstellung usw. In diesem Artikel beschreiben wir, wie Sie WeChat-Benutzerinformationen bei der Entwicklung der öffentlichen WeChat-Plattform erhalten. Im vorherigen Artikel haben wir über die Verbindung zwischen WeChat-Benutzern und WeChat gesprochen Öffentliche Konten können über Openid verknüpft werden. Daher verwenden wir hier openid, um Benutzer-WeChat-Informationen zu erhalten und eine einfache Szenarioanwendung zu implementieren: Wenn ein neuer WeChat-Benutzer unserer öffentlichen WeChat-Plattform folgt, antworten wir automatisch mit einer Bild- und Textnachricht und dann dem Titel In der grafischen Nachricht steht: [Sehr geehrte Damen und Herren: XXX, hallo! ], und das Bild in der grafischen Nachricht ist der WeChat-Avatar des Benutzers, wie unten gezeigt:

Dokumente zum Erhalten von WeChat-Benutzerinformationen finden Sie unter: mp.weixin .qq .com/wiki/1/8a5ce6257f1d3b2afb20f83e72b72ce9.html .

(1) Implementierung des Erhaltens von Benutzer-WeChat-Nachrichten

Nachdem der Follower mit dem offiziellen Konto interagiert hat, um Nachrichten zu generieren, kann das offizielle Konto die OpenID des Followers (verschlüsselt für) erhalten WeChat, die OpenID jedes Benutzers für jedes offizielle Konto ist einzigartig. Für verschiedene offizielle Konten ist die OpenID desselben Benutzers unterschiedlich. Öffentliche Konten können über diese Schnittstelle grundlegende Benutzerinformationen basierend auf OpenID erhalten, einschließlich Spitzname, Avatar, Geschlecht, Stadt, Sprache und Follow-Zeit.

http-Anfragemethode: GET api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

at Hier habe ich eine Methodenklasse GetUseInfo.java geschrieben. In der Methode müssen wir nur openid übergeben, um zurückzukehren (Spitzname, Bild, Geschlecht [andere Parameter können Sie selbst erhalten]). Der Code ist wie folgt implementiert:

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)Folgen und antwortenImplementierung von Bild- und Textnachrichten

Es heißt im ersten Teil [Nachdem Follower mit interagiert haben Das öffentliche Konto zum Generieren von Nachrichten, das öffentliche Konto kann die OpenID des Followers erhalten. In unserem Szenario ist das Ereignis , das die OpenID des Followers erhält, gleichzeitig das Aufmerksamkeitsereignis des Benutzers Informationen zur Implementierung der Nachrichtenantwort für die grafische Nachricht des Followers (Bild und Text) finden Sie unter: Entwicklung der öffentlichen Java-WeChat-Plattform (5) Implementierung von Text und grafischer Nachrichtenantwort), Implementierungsprozess:

Rufen Sie die OpenID ab, indem Sie dem Ereignis folgen, und rufen Sie die Benutzerinformationsschnittstelle auf, um Follower zu erhalten. Verwandte Schnittstellen.
Legen Sie den Titel und das Bild der grafischen Nachricht in der passiven Antwort auf das Folgeereignis fest und antworten Sie dem Follower.
Der einfache Code ist wie folgt implementiert:

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

Endlich können wir einen Blick auf unsere Seite werfen. Um die Ergebnisse sehr intuitiv zu sehen, habe ich sie entfolgt und dann erneut gefolgt, wie unten gezeigt:

[Verwandte Empfehlungen]

1. Kostenloses Java-Video-Tutorial

2 🎜>

3. Umfassende Analyse von Java-Annotationen

Das obige ist der detaillierte Inhalt vonJava verwendet openid, um Benutzer-Mikroinformationen abzurufen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn