欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

微信公众帐号开发教程第12篇-符号表情的发送(下)

程序员文章站 2022-04-22 21:37:27
...
引言及文章概要

第11篇文章给出了Unified版本的符号表情(emoji表情)代码表,并且介绍了如何在微信公众帐号开发模式下发送emoji表情,还在文章结尾出,卖了个关子:“小q机器人中使用的一些符号表情,在微信的符号表情选择栏里根本找不到,并且在上篇文章给出的符号表情代码表(Unified版)中也没有,那这些表情是如何发送的呢?”如下面两张图所示的符号表情“情侣”和“公共汽车”。

本文主要介绍以下内容:1)如何在微信上使用更多的符号表情(即如何发送在微信符号表情选择栏中不存在的emoji表情);2)给出SoftBank版符号表情的代码对照表;3)介绍及演示如何发送SoftBank版本的符号表情。让大家彻底玩转微信公众帐号的emoji表情!

如何在微信上使用更多的符号表情

我们先来看下,作为一个微信用户,如何向好友或微信公众帐号发送一些微信符号表情选择栏中没有列出的符号表情。例如:小q机器人中使用的“情侣”、“公共汽车”两个符号表情,如果我想在与朋友微信聊天时使用,该怎么办呢?请先看下面的两张截图:

可以看出,当我们在输入框中输入“情侣”的全拼“qinglv”、“公共汽车”的全拼“gonggongqiche”时,输入法的文本提示列表中就会自动显示对应的符号表情,怎么样,是不是很容易呢?这类表情还有很多,例如:马桶、厕所、取款机等。

说明:笔者使用的是iPhone 4S手机系统自带的输入法做的测试,如果你用的是安卓、或者是第三方输入法,那就另当别论了。

Emoji表情代码表之SoftBank版本

上篇文章讲过,emoji表情有很多种版本,其中包括Unified、DoCoMo、KDDI、Softbank和Google,并且不同版本用于表示同一符号表情的Unicode代码也不相同。本篇文章,给出SoftBank(日本软银集团)版本的emoji表情代码表(网上一般称之为SB Unicode,指的就是它),如下图所示:

公众帐号如何向用户发送SoftBank版本的符号表情

在微信公众帐号开发模式下,发送SoftBank版的符号表情要比发送Unified版的符号表情简单的多,直接将符号表情对应的SoftBank Unicode值写在程序代码中返回给用户即可,无需做任何处理。

下面,我给出一个发送SoftBank版符号表情的示例,代码如下:

package org.liufeng.course.service;

import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.liufeng.course.message.resp.TextMessage;
import org.liufeng.course.util.MessageUtil;

/**
 * 核心服务类
 * 
 * @author liufeng
 * @date 2013-07-21
 */
public class CoreService {
	/**
	 * 处理微信发来的请求
	 * 
	 * @param request
	 * @return
	 */
	public static String processRequest(HttpServletRequest request) {
		String respMessage = null;
		try {
			// xml请求解析
			Map requestMap = MessageUtil.parseXml(request);

			// 发送方帐号(open_id)
			String fromUserName = requestMap.get("FromUserName");
			// 公众帐号
			String toUserName = requestMap.get("ToUserName");

			// 回复文本消息
			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("自行车\ue136 男人\ue138 钱袋\ue12f 情侣\ue428 公共汽车\ue159");
			respMessage = MessageUtil.textMessageToXml(textMessage);
		} catch (Exception e) {
			e.printStackTrace();
		}

		return respMessage;
	}
}

上面代码的作用是:不管用户发送什么类型的消息,都返回包含5个emoji表情的文本消息。如果不明白CoreService类怎么回事,请查看本系列教程的第5篇,或者你只需要认真看第42行代码,就知道怎么样把SoftBank版emoji表情代码放在文本消息的Content中了。最后再来看下运行效果截图:

说明:每一个符号表情都有与之对应的Unified unicode、Softbank unicode代码,并不是说“情侣”、“公共汽车”这类在微信的符号表情栏中找不到的emoji表情只能通过本文的方式发送,只要你拿到与之对应的Unified unicode代码,一样可以使用上篇文章所讲的方法发送这类符号表情。

好了,关于微信公众帐号向用户发送符号表情的讲解就此结束了,相信有些朋友看完教程已经开始在帐号中使用符号表情了。其实,我更希望大家在拷贝我粘出的Unified版、SoftBank版符号表情代码表的同时,也能去了解下符号表情各种版本、Unicode编码及增补码的相关知识,不断拓展自己的知识面,触类旁通,这样才能真正地把我讲解的知识变成你自己的,才能做到以不变应万变。