微信消息接口指南
微信公众平台消息接口API指南

微信公众平台消息接口API指南微信公众平台消息接口 API 啊,这可是个很有趣的玩意儿!咱们先来说说什么是微信公众平台消息接口 API 吧。
简单来讲,它就像是一个神奇的通道,能让咱们的公众号和用户之间实现更紧密、更智能的交流。
比如说,你开了一家小小的花店,通过这个消息接口 API,当用户给你的公众号发送“我想要一束玫瑰”,你的公众号就能自动回复“亲,我们有各种颜色的玫瑰供您选择哦,红的热情,粉的浪漫,白的纯洁,您更倾向哪种呀?”这是不是超酷的!接下来,咱们详细了解一下它的一些特点和功能。
这个接口能让你获取用户发送的消息内容,包括文字、图片、语音等等。
就像有一次,我朋友的蛋糕店公众号,收到了用户发来的一张生日蛋糕的图片,然后通过 API 识别出了蛋糕的款式和风格,马上就能给出相应的价格和定制建议。
而且啊,它还能实现自动回复呢。
比如设置一些常见问题的答案,像“你们店几点开门?”“配送范围是哪里?”等等,用户一问,马上就能得到准确的回答,节省了大量的人工时间。
另外,消息接口 API 还支持群发消息。
想象一下,你有一个新品上市,通过这个功能,一下子就能通知到所有关注你的用户,多方便!不过,使用这个接口也不是那么简单的。
首先,你得有一定的技术基础,要懂编程,懂代码。
这对于像我这种技术小白来说,一开始真的是一头雾水。
还记得我第一次尝试的时候,看着那些密密麻麻的代码,感觉脑袋都要炸了。
还有啊,接口的使用也有一些规则和限制,可不能随意乱来。
比如说,发送消息的频率不能太高,不然可能会被微信认为是在骚扰用户,那可就糟糕啦。
但是,只要你认真研究,多尝试,多摸索,一定能掌握这个强大的工具。
就像我那个开蛋糕店的朋友,一开始也是磕磕绊绊的,但经过不断努力,现在他的公众号服务做得可好了,生意也越来越红火。
总之呢,微信公众平台消息接口 API 是个很有用的东西,但也需要咱们用心去学习和运用。
希望大家都能通过它,让自己的公众号变得更加出色,和用户建立更紧密的联系!。
微信开发-群发接口

微信开发-群发接⼝前⾯说到的都是⼀条⼀条的回复给⽤户消息,如果想要⼀次性发给多个⽤户,就要使⽤微信提供的群发接⼝了。
微信群发需要注意(其实就是微信⽂档⾥⾯的内容):1.次数不⼀样,认证的订阅号可以每天发送⼀条群发消息,⽽认证的服务号虽然每天可以发送100条,但是⽤户每⽉只能接收四条,多余四条的将发送失败。
2.群发的时候,认证的订阅号每天只能使⽤is_to_all群发⼀次或者在公众平台群发⼀次。
相应的,服务号每个⽉公众平台群发+is_to_all群发最多只能四次。
根据标签群发 1.这个接⼝是通过post请求的,请求参数根据群发的内容略有不同。
2.tagid就是以前的分组id现在改名叫标签,在微信公众平台->⽤户管理的右侧可以看到已经创建的标签名,获得标签id需要通过接⼝来获得已经创建的所有标签的id。
3.当is_to_all为true时,可以选择不填写tagid。
4.media_id需要通过微信上传素材接⼝获得。
5.群发接⼝可以发送卡券,cardid需要通过创建卡券获得或者卡券相关事件推送获得。
/***根据标签进⾏群发*/public function pushByTags(){$access_token=get_token();$url="https:///cgi-bin/message/mass/sendall?access_token=".$access_token;$data=array('filter'=>array('is_to_all'=>false,'tag_id'=>135),'text'=>array('content'=>'test'),'msgtype'=>'text');$result=json_decode(curl($url,json_encode($data)),true);if($result['errcode']==0){echo "群发成功";M('monthtuisong')->add(array('msgid'=>$result['msg_id'])); }else{echo "群发失败";}} 返回errcode=0只是意味着群发任务提交成功,并不意味着群发结束,后续的群发过程中可能受到各种因素的影响,需要⼀段时间才能群发完毕。
java调用个人微信接口收发消息

// 告诉客户端消息已收到 MessageUtil.sendMsg(ctx, EnumMsgType.MsgRe, vo.getId(), null);
WxAccountInfo account = weChatAccountService.findWeChatAccountInfoByWeChatId(req.getWeChatId()); //消息记录数据库 if (null != account){ asyncTaskService.saveMessage(account, req); }
log.debug(LocalDateTime.now()+" 微信好友发来聊天消息 对应的线程名: "+Thread.currentThread().getName());
//拦截消息 asyncTaskService.msgAopTask(ctx,req,vo.getAccessToken(), vo.getId()); //消息转发到pc端 asyncTaskService.msgSend2pc(req.getWeChatId(), EnumMsgType.FriendTalkNotice, req);
} catch (Exception e) { e.printStackTrace(); MessageUtil.sendErrMsg(ctx, EnumErrorCode.InvalidParam,vo.getId(), e.getMessage()); } }
微信公众平台订阅消息接口在哪具体接口位置介绍

微信公众平台订阅消息接口在哪具体接口
位置介绍
微信公众平台在近日新增了一次性订阅消息接口,但是这里有用户不知道微信公众平台订阅消息接口在哪,下面就让小编为大家带来接口位置,一起来看看吧。
具体接口位置介绍:
今天凌晨,微信公众平台为开发者们带来了全新的功能——新增“一次性订阅消息”接口,根据微信官方介绍,公众平台现开放一次性订阅消息接口将更方便开发者与微信用户之间建立联系,提供更好的服务。
App内,在需要提醒用户的场景中,例如比赛开始,投
诉处理反馈等。
用户可订阅一条微信内的提醒消息。
在事件发生时,用户可在微信内服务通知内收到一条消息通知。
(点此了解)
公众号和微信内网页,用户也可订阅消息提醒。
在未关注公众号时,可在服务通知中收到一条消息提醒,如果已关注公众号,则可以在公众号会话内收到消息提醒。
(点此了解)。
微信网页版接口详解

微信⽹页版接⼝详解本系列会讲述微信机器⼈技术的实现,第⼀讲主要了解微信⽹页版给我们提供的http接⼝,这⼀步是做⼀个基于微信⽹页版机器⼈的基础和难点。
本讲将微信⽹页版的主要接⼝罗列出,并给出了⼊参和返回值的含义和⽤法。
⼀些不常⽤的接⼝后续会逐渐补充,也欢迎⼤家与我交流。
后⾯⼏讲将会在代码中探讨微信机器⼈的设计思路,欢迎⼤家持续关注。
⼀、⽹页版微信提供的HTTP接⼝1、获取uuid说明:⽤于获取显⽰⼆维码以及登录所需的uuid,标识获取⼆维码和扫码的为同⼀个⽤户请求⽅式:GET地址:get参数:参数⽰例值说明appid wx782c26e4c19acffb固定值fun new固定值lang zh_CN表⽰中⽂字符集返回:window.QRLogin.code = 200; window.QRLogin.uuid = "wb7R2kx9dA==";2、显⽰⼆维码说明:展⽰⼀张⽤于登陆的⼆维码图⽚,地址⾥的{uuid}传第⼀步所获取的uuid请求⽅式:GET地址:get参数:参数⽰例值说明t webwx固定值返回:⼆维码的⼆进制流,浏览器打开会直接显⽰⼀张⼆维码图⽚3、轮询登录说明:尝试登录。
若此时⽤户⼿机已完成扫码并点击登录,则返回⼀个真正⽤于登录的url地址。
否则接⼝⼤概10s后返回未扫码或未登录的状态码请求⽅式:GET地址:get参数:参数⽰例值说明tip11:未扫描 0:⼀扫描uuid wb7R2kx9dA==第⼀步所获取的uuid返回:redirect_uri的值可以直接⽤于下⼀步的“登录并获取公参”请求window.code=200(408为未扫码,201为已扫码但未点击登录,200为成功登录);window.redirect_uri="https:///cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=AfrMMbhsnElmA7xc1R9CWUq-@qrticket_0&uuid=4ZnG7WZ0Cg= 4、登录并获取公参说明:访问后可获取⼀组公参,⽤于之后访问所有的接⼝。
微信公众平台发送模板消息(Java接口开发)

微信公众平台发送模板消息(Java接⼝开发)前⾔:最近⼀直再弄微信扫码推送图⽂消息和模板消息发送,感觉学习到了不少东西。
今天先总结⼀下微信公众平台模板消息的发送。
因为这个⾃⼰弄了很久,开始很多地⽅不明⽩,所以今天好好总结⼀下。
微信公众平台技术⽂档:⼀、概述模板消息仅⽤于公众号向⽤户发送重要的服务通知,只能⽤于符合其要求的服务场景中,如信⽤卡刷卡通知,商品购买成功通知等。
不⽀持⼴告等营销类消息以及其它所有可能对⽤户造成骚扰的消息。
关于使⽤规则,请注意:1、所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的⼊⼝,但只有认证后的服务号才可以申请模板消息的使⽤权限并获得该权限;2、需要选择公众账号服务所处的2个⾏业,每⽉可更改1次所选⾏业;3、在所选择⾏业的模板库中选⽤已有的模板进⾏调⽤;4、每个账号可以同时使⽤25个模板。
5、当前每个账号的模板消息的⽇调⽤上限为10万次,单个模板没有特殊限制。
【2014年11⽉18⽇将接⼝调⽤频率从默认的⽇1万次提升为⽇10万次,可在MP登录后的开发者中⼼查看】。
当账号粉丝数超过10W/100W/1000W时,模板消息的⽇调⽤上限会相应提升,以公众号MP后台开发者中⼼页⾯中标明的数字为准。
关于接⼝⽂档,请注意:1、模板消息调⽤时主要需要模板ID和模板中各参数的赋值内容;2、模板中参数内容必须以”.DATA”结尾,否则视为保留字;3、模板保留符号”{{ }}”。
看微信公众平台接⼝⽂档最开始我的内⼼是崩溃的,因为⽬录列表⼀开始就是设置所属⾏业,获取所属⾏业信息等。
后来整理思路,我们主要负责的功能的实现,就不去考虑那么多其他的内容,直接弄模板消息的发送。
但是发送模板之前有⼀个很重要的步骤,就是模板ID(template_id)。
微信公众平台发送模板消息有严格的要求,参考。
⼆、模板消息的设计这⾥是依靠微信公众平台测试公众号的模板消息接⼝来设计消息模板,通过⾏业类型来获取模板的同学还是参考微信公众平台的官⽅⽂档来学习。
java访问微信接口发送消息

java访问微信接⼝发送消息最近在开发activiti流程的时候有个需求:流程到达每个审批节点后,需要向该节点的审批⼈发送⼀个消息,提⽰有审批需要处理。
参考了⼀下微信的开发者⽂档和⽹络上的⼀些技术博客,现在记录⼀下。
以便后续继续研究微信开发。
【微信开发真的很好玩的】⾸先,你需要注册⼀个企业微信账号:https:///wework_admin/register_wx?from=myhome然后进⼊后台管理,创建⼀个应⽤上⾯标红的信息,都是开发测试需要⽤到的,需要记录⼀下。
先贴代码:WeChatData.javapackage com.xfma.wx.test;/*** 微信消息发送实体类* @author PC-MXF**/public class WeChatData {//发送微信消息的URLString sendMsgUrl="https:///cgi-bin/message/send?access_token="; /*** 成员账号*/private String touser;/*** 消息类型*/private String msgtype;/*** 企业⽤⽤的agentid*/private String agentid;/*** ⼗⼏接收map类型数据*/private Object text;public String getTouser() {return touser;}public void setTouser(String touser) {this.touser = touser;}public String getMsgtype() {return msgtype;}public void setMsgtype(String msgtype) {this.msgtype = msgtype;}public String getAgentid() {return agentid;}public void setAgentid(String agentid) {this.agentid = agentid;}public Object getText() {return text;}public void setText(Object text) {this.text = text;}} WeChatUrlData.javapackage com.xfma.wx.test;/*** 微信授权请求* @author PC-MXF**/public class WeChatUrlData {/*** 企业Id*/private String corpid;/*** secret管理组的凭证密钥*/private String corpsecret;/*** 获取ToKen的请求*/private String Get_Token_Url;/*** 发送消息的请求*/private String SendMessage_Url;public String getCorpid() {return corpid;}public void setCorpid(String corpid) {this.corpid = corpid;}public String getCorpsecret() {return corpsecret;}public void setCorpsecret(String corpsecret) {this.corpsecret = corpsecret;}public String getGet_Token_Url() {return Get_Token_Url;}public void setGet_Token_Url(String corpid,String corpsecret) {Get_Token_Url = "https:///cgi-bin/gettoken?corpid="+corpid+"&corpsecret="+corpsecret; }public String getSendMessage_Url() {SendMessage_Url = "https:///cgi-bin/message/send?access_token=";return SendMessage_Url;}public void setSendMessage_Url(String sendMessage_Url) {SendMessage_Url = sendMessage_Url;}} WeChatMsgSend.javapackage com.xfma.wx.test;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.HashMap;import java.util.Map;import org.apache.http.HttpEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.StringEntity;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;import org.slf4j.LoggerFactory;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;/*** 微信发送消息** @author PC-MXF**/public class WeChatMsgSend {private CloseableHttpClient httpClient;/*** ⽤于提交登录数据*/private HttpPost httpPost;/*** ⽤于获得登陆后页⾯*/private HttpGet httpGet;public static final String CONTENT_TYPE = "Content-Type";SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");private static Gson gson = new Gson();/*** 微信授权请求,GET类型,获取授权响应,⽤于其他⽅法截取token** @param Get_Token_Url* @return String 授权响应内容* @throws IOException*/protected String toAuth(String Get_Token_Url) throws IOException {httpClient = HttpClients.createDefault();httpGet = new HttpGet(Get_Token_Url);CloseableHttpResponse response = httpClient.execute(httpGet);String resp = "";try {HttpEntity entity = response.getEntity();resp = EntityUtils.toString(entity, "utf-8");EntityUtils.consume(entity);} catch (Exception e) {e.getStackTrace();} finally {response.close();}LoggerFactory.getLogger(getClass()).info(" resp:{}", resp);return resp;}/*** corpid应⽤组织编号 corpsecret应⽤秘钥获取toAuth(String* Get_Token_Url)返回结果中键值对中access_token键的值** @param*/public String getToken(String corpid, String corpsecret) throws IOException {WeChatMsgSend sw = new WeChatMsgSend();WeChatUrlData uData = new WeChatUrlData();uData.setGet_Token_Url(corpid, corpsecret);String resp = sw.toAuth(uData.getGet_Token_Url());System.out.println("resp=====:" + resp);try {Map<String, Object> map = gson.fromJson(resp, new TypeToken<Map<String, Object>>() {}.getType());return map.get("access_token").toString();} catch (Exception e) {e.getStackTrace();return resp;}}/*** 创建微信发送请求post数据 touser发送消息接收者,msgtype消息类型(⽂本/图⽚等), application_id应⽤编号。
微信接口文档

PizzaPizza项目前言:为了方面大伙快速上手微信接口开放,所以自己平时抽空时写了此项目,纯属个人项目,纯开源,纯娱乐,里面包括微信第三方平台,跟微信接口调用,好废话不多说,开始详细说明A.项目截图B.C.D.通过以上截图基本了解了项目的整体架构层次,当然你们在开发是需要用的到,主要在com.pizza.wechat.request.api此包下的对象方法,此包下的方面都依赖com.pizza.wechat.request.APIHttpConnect这个类,这个类是最底层的调用类,用来模拟pos/get https请求,多媒体文件的上传下载。
E.如果你是做第三方平台开发,你会需要用到com.pizza.wechat.service包下的两个类OSAuthorizeNotify:这个对象是用来处理第三方接收授权消息,处理类里面包括一个方法process跟一个构造函数,构造函数需要传递两个参数Public OSAuthorizeNotify(AuthNotify service,HttpServletRequest request)第一个参数是用来处理授权信息的AuthNotify接口实现,第二个不用多说了吧,new完此对象以后记得调用process方法,此方面里面你不用关心,你只需要实现AuthNotify便可,此接口有微信推送过来的component_verify_ticket数据,一直取消授权事件通知OSMessageNotify:这个对象专门用来处理微信推送给授权方的所有事件消息,他里面也包含一个process方法跟构造函数publicOSMessageNotify(MessageNotify service, HttpServletRequest request)第一个参数也是一个接口,他里面定义了所有的微信接口事件类型,大伙个可以通过实现此接口来,实现自己的所有业务逻辑,里面的事件包括Text,image,link,location,click,qrscan,subscribe,unsubscribe ,voice,event,一次按此顺序说明文本消息事件,图片消息事件,点击连接事件,地址信息事件,点击菜单事件,扫描二维码事件,关注事件,取消关注事件,语音事件,其他事件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微信消息接口指南出自开放平台跳转到:导航, 搜索目录[隐藏]∙ 1 简介∙ 2 申请消息接口∙ 3 网址接入∙ 4 消息推送o 4.1 文本消息o 4.2 图片消息o 4.3 地理位置消息o 4.4 链接消息o 4.5 事件推送∙ 5 消息回复o 5.1 回复文本消息o 5.2 回复音乐消息o 5.3 回复图文消息∙ 6 注意事项∙7 示例代码简介公众平台消息接口为开发者提供了一种新的消息处理方式。
申请消息接口点击申请,填写网址url和token,其中token可由开发者可以任意填写,用作生成签名。
网址接入公众平台用户提交信息后,微信服务器将发送GET请求到填写的URL上,并且带上四个参数:开发者通过检验signature对请求进行校验(下面有校验方式)。
若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败。
signature结合了开发者填写的token参数和请求中的timestamp参数、nonce 参数。
加密/校验流程:1. 将token、timestamp、nonce三个参数进行字典序排序2. 将三个参数字符串拼接成一个字符串进行sha1加密3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信消息推送当普通微信用户向公众账号发消息时,微信服务器将POST该消息到填写的URL 上。
结构如下:文本消息<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>1348831860</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[this is a test]]></Content><MsgId>1234567890123456</MsgId>图片消息<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>1348831860</CreateTime><MsgType><![CDATA[image]]></MsgType><PicUrl><![CDATA[this is a url]></PicUrl><MsgId>1234567890123456</MsgId>地理位置消息<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1351776360</CreateTime><MsgType><![CDATA[location]]></MsgType><Location_X>23.134521</Location_X><Location_Y>113.358803</Location_Y><Scale>20</Scale><Label><![CDATA[位置信息]]></Label><MsgId>1234567890123456</MsgId>链接消息<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>1351776360</CreateTime><MsgType><![CDATA[link]]></MsgType><Title><![CDATA[公众平台官网链接]]></Title><Description><![CDATA[公众平台官网链接]]></Description> <Url><![CDATA[url]]></Url><MsgId>1234567890123456</MsgId>事件推送事件推送只支持微信4.5版本,即将开放,敬请期待。
<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>123456789</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[LOCATION]]></Event><Latitude>23.137466</Latitude><Longitude>113.352425</Longitude><Precision>119.385040</Precision>消息回复对于每一个POST请求,开发者在响应包中返回特定xml结构,对该消息进行响应(现支持回复文本、图文、语音、视频、音乐和对收到的消息进行星标操作)。
微信服务器在五秒内收不到响应会断掉连接。
回复xml结构如下:回复文本消息<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>12345678</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[content]]></Content><FuncFlag>0</FuncFlag>回复音乐消息<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime><MsgType><![CDATA[music]]></MsgType><Music><Title><![CDATA[TITLE]]></Title><Description><![CDATA[DESCRIPTION]]></Description> <MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl><HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl> </Music><FuncFlag>0</FuncFlag>回复图文消息<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>2</ArticleCount><Articles><item><Title><![CDATA[title1]]></Title><Description><![CDATA[description1]]></Description> <PicUrl><![CDATA[picurl]]></PicUrl><Url><![CDATA[url]]></Url></item><item><Title><![CDATA[title]]></Title><Description><![CDATA[description]]></Description> <PicUrl><![CDATA[picurl]]></PicUrl><Url><![CDATA[url]]></Url></item></Articles><FuncFlag>1</FuncFlag>注意事项1.用户OpenID对一个公众号是固定唯一的串2.请使用80端口3.用户关注公众号,微信公众平台服务器推送一条内容为Hello2BizUser的文本消息到第三方服务器示例代码PHP:下载。