快消品貨源批發(fā)市場(chǎng)
快消品貨源分銷平臺(tái)
 
 
當(dāng)前位置: 貨源批發(fā)網(wǎng) » 網(wǎng)商學(xué)院 » 網(wǎng)店推廣 » 營(yíng)銷技巧 » 微信營(yíng)銷 » 微信公眾帳號(hào)開(kāi)發(fā)教程:QQ表情的發(fā)送與接收

微信公眾帳號(hào)開(kāi)發(fā)教程:QQ表情的發(fā)送與接收

放大字體  縮小字體 發(fā)布日期:2024-06-12 13:07:33  來(lái)源:電商聯(lián)盟  作者:樂(lè)發(fā)網(wǎng)  瀏覽次數(shù):1

有過(guò)php開(kāi)發(fā)基礎(chǔ)的會(huì)了解,你在論壇上發(fā)的表情,在代碼段中控制的并不是通過(guò)一張動(dòng)態(tài)圖片來(lái)控制的,而是通過(guò)相對(duì)應(yīng)的文本,當(dāng)然qq表情也不例外
首先需要明確的是:QQ表情雖然呈現(xiàn)為一張張動(dòng)態(tài)的表情圖片,但在微信公眾平臺(tái)的消息接口中卻是屬于文本消息;也就是說(shuō)當(dāng)用戶向公眾帳號(hào)發(fā)送QQ表情時(shí),公眾帳號(hào)后臺(tái)程序接收到的消息類型MsgType的值為text。只要上面這點(diǎn)能理解了,下面的工作就好開(kāi)展了。
對(duì)于QQ表情,發(fā)送的是文本消息,而呈現(xiàn)出來(lái)卻是表情圖片,那么每一個(gè)QQ表情圖片一定會(huì)有與之相對(duì)應(yīng)的表情代碼。下面是我已經(jīng)整理好的微信公眾帳號(hào)中使用的QQ表情代碼對(duì)照表:
1
上面一共列出了105個(gè)QQ表情,每個(gè)表情都給出了與之相對(duì)應(yīng)的文字代碼與符號(hào)代碼(也許這兩種叫法并不恰當(dāng)),至于這兩種代碼怎么來(lái)的以及如何使用,下面馬上會(huì)講到。
用戶向公眾帳號(hào)發(fā)送QQ表情
在微信上使用公眾帳號(hào)時(shí),如何發(fā)送QQ表情,我想這個(gè)很少有人不會(huì)的。在輸入框旁邊有一個(gè)笑臉的圖片按鈕,點(diǎn)擊它將會(huì)彈出表情選擇界面,可選擇的表 情依次為“QQ表情”、“符號(hào)表情”和“動(dòng)畫表情”。當(dāng)我們點(diǎn)擊選擇了某個(gè)QQ表情后,發(fā)現(xiàn)在輸入框中會(huì)顯示該表情的文字代碼,這里是用一對(duì)中括號(hào)引起 的。
在輸入框中輸入“[呲牙]”、“/呲牙”和“/::D”這三種代碼的作用一樣,都是發(fā)送呲牙的QQ表情。這個(gè)時(shí)候,大家再回過(guò)頭去看文章最開(kāi)始的QQ表情代碼對(duì)照表,就明白是怎么回事了。
公眾帳號(hào)向用戶發(fā)送QQ表情
與用戶向公眾帳號(hào)發(fā)送QQ表情一樣,在開(kāi)發(fā)模式下,公眾帳號(hào)也可以用同樣的表情代碼(文字代碼或符號(hào)代碼)向用戶回復(fù)QQ表情。代碼片段如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
// 文本消息
if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) {
	// 回復(fù)文本消息
	TextMessage textMessage = new TextMessage();
	textMessage.setToUserName(fromUserName);
	textMessage.setFromUserName(toUserName);
	textMessage.setCreateTime(new Date().getTime());
	textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
	textMessage.setFuncFlag(0);
	textMessage.setContent("[難過(guò)] /難過(guò) /::(");
 
	// 文本消息對(duì)象轉(zhuǎn)換成xml字符串
	respMessage = MessageUtil.textMessageToXml(textMessage);
}
上面代碼片段的作用是:判斷發(fā)送的消息類型,如果是文本消息(MsgType=text),則回復(fù)三個(gè)難過(guò)的QQ表情給用戶??梢钥闯?,不管是用戶發(fā)給公眾帳號(hào),還是公眾帳號(hào)發(fā)給用戶,都可以使用QQ表情的文字代碼(如:[難過(guò)]  /難過(guò))和符號(hào)代碼(如 /::()。
 
公眾帳號(hào)識(shí)別用戶發(fā)送的QQ表情
在掌握了如何發(fā)送QQ表情后,我們?cè)賮?lái)看看公眾帳號(hào)如何識(shí)別用戶發(fā)送的是QQ表情。這是什么意思呢?當(dāng)用戶向公眾帳號(hào)發(fā)送一個(gè)QQ表情,在后臺(tái)程序中接收到的會(huì)是什么值,我們又怎么知道這個(gè)值就是一個(gè)QQ表情。
其實(shí),只要做個(gè)簡(jiǎn)單的測(cè)試,比如:將接收到的文本消息輸出到日志中(可以用log4j或者System.out.print),不難發(fā)現(xiàn):向公眾帳號(hào)發(fā)送一個(gè)QQ表情,在后臺(tái)程序中接收到的是QQ表情的符號(hào)代碼。
下面是我簡(jiǎn)單封裝的一個(gè)方法,通過(guò)正則表達(dá)式實(shí)現(xiàn)的,用于判斷用戶發(fā)送的是否是單個(gè)QQ表情。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static boolean isQqFace(String content) {
	boolean result = false;
 
	// 判斷QQ表情的正則表達(dá)式
	String qqfaceRegex = "/::\\)|/::~|/::B|/::\\||/:8-\\)|/::< |/::$|/::X|/::Z|/::'\\(|/::-\\||/::@|/::P|/::D|/::O|/::\\(|/::\\+|/:--b|/::Q|/::T|/:,@P|/:,@-D|/::d|/:,@o|/::g|/:\\|-\\)|/::!|/::L|/::>|/::,@|/:,@f|/::-S|/:\\?|/:,@x|/:,@@|/::8|/:,@!|/:!!!|/:xx|/:bye|/:wipe|/:dig|/:handclap|/:&-\\(|/:B-\\)|/:< @|/:@>|/::-O|/:>-\\||/:P-\\(|/::'\\||/:X-\\)|/::\\*|/:@x|/:8\\*|/:pd|/:<w>|/:beer|/:basketb|/:oo|/:coffee|/:eat|/:pig|/:rose|/:fade|/:showlove|/:heart|/:break|/:cake|/:li|/:bome|/:kn|/:footb|/:ladybug|/:shit|/:moon|/:sun|/:gift|/:hug|/:strong|/:weak|/:share|/:v|/:@\\)|/:jj|/:@@|/:bad|/:lvu|/:no|/:ok|/:love|/:<l>|/:jump|/:shake|/:<o>|/:circle|/:kotow|/:turn|/:skip|/:oY|/:#-0|/:hiphot|/:kiss|/:< &|/:&>";
	Pattern p = Pattern.compile(qqfaceRegex);
	Matcher m = p.matcher(content);
	if (m.matches()) {
		result = true;
	}
	return result;
}
</o></l></w>
下面是方法的使用,實(shí)現(xiàn)了這樣一個(gè)簡(jiǎn)單的功能:用戶發(fā)什么QQ表情給公眾帳號(hào),公眾帳號(hào)就回復(fù)什么QQ表情給用戶。實(shí)現(xiàn)代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 文本消息
if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) {
	// 文本消息內(nèi)容
	String content = requestMap.get("Content");
 
	// 判斷用戶發(fā)送的是否是單個(gè)QQ表情
	if(XiaoqUtil.isQqFace(content)) {
		// 回復(fù)文本消息
		TextMessage textMessage = new TextMessage();
		textMessage.setToUserName(fromUserName);
		textMessage.setFromUserName(toUserName);
		textMessage.setCreateTime(new Date().getTime());
		textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
		textMessage.setFuncFlag(0);
		// 用戶發(fā)什么QQ表情,就返回什么QQ表情
		textMessage.setContent(content);
 
		// 將文本消息對(duì)象轉(zhuǎn)換成xml字符串
		respMessage = MessageUtil.textMessageToXml(textMessage);
	}
}

樂(lè)發(fā)網(wǎng)超市批發(fā)網(wǎng)提供超市貨源信息,超市采購(gòu)進(jìn)貨渠道。超市進(jìn)貨網(wǎng)提供成都食品批發(fā),日用百貨批發(fā)信息、微信淘寶網(wǎng)店超市采購(gòu)信息和超市加盟信息.打造國(guó)內(nèi)超市采購(gòu)商與批發(fā)市場(chǎng)供應(yīng)廠商搭建網(wǎng)上批發(fā)市場(chǎng)平臺(tái),是全國(guó)批發(fā)市場(chǎng)行業(yè)中電子商務(wù)權(quán)威性網(wǎng)站。

本文內(nèi)容整合網(wǎng)站:百度百科、知乎、淘寶平臺(tái)規(guī)則

本文來(lái)源: 微信公眾帳號(hào)開(kāi)發(fā)教程:QQ表情的發(fā)送與接收

分享與收藏:  網(wǎng)商學(xué)院搜索  告訴好友  關(guān)閉窗口  打印本文 本文關(guān)鍵字:
 
更多..資源下載
微信營(yíng)銷圖文
微信營(yíng)銷網(wǎng)商學(xué)院推薦
微信營(yíng)銷點(diǎn)擊排行
 
手機(jī)版 手機(jī)掃描訪問(wèn)
亚洲一级av,黑白配精品在线视频,欧美亚洲综合网站,高清在线无码不卡69 www.sucaiwu.net