微信消息接口_微信个人号发消息接口api - CSDN
精华内容
参与话题
  • 微信开发之发送消息接口

    万次阅读 2016-12-25 21:36:18
    本文将基于Java语言以及个人微信测试号,说明被动回复、客服消息接口以及模板消息接口的使用实现,群发接口并未涉及。 1. 被动回复 被动回复只能应用于在接收到用户的互动数据之后,才能向用户发送消息。这一部分...

    发送消息,是指用户公众号向用户发送相应形式的消息。根据微信开发文档,由以下四种形式:被动回复,群发接口,客服消息接口以及模板消息接口。本文将基于Java语言以及个人微信测试号,说明被动回复、客服消息接口以及模板消息接口的使用实现,群发接口并未涉及。
    1. 被动回复
    被动回复只能应用于在接收到用户的互动数据之后,才能向用户发送消息。这一部分较为简单,正式进行微信开发的第一步就是,在公众号中基本配置->服务器配置中设置URL(服务器地址)时,这时该URL链接指定的地址就是对应着Java Web下的一个Servlet,配置好对应的Token及相关参数之后,则微信服务器将会将所有的用户与公众号的互动信息都转发到该Servlet,然后开发者根据接收到的用户互动数据,再进行处理。所谓的被动回复,就是在该Servlet中判断接收到你指定的消息时(例如某个字眼),则直接将想要回复的消息打包成官方指定的XML数据格式,写回到输出流中即可。在这里不过过多解释,如下示例代码:

    response.getWriter().write( MessageUtil.MessageToXML(new TextMessage.Builder(fromUserName,toUserName,new Date().getTime(),"最新资讯请查看下方微信菜单栏,谢谢您的关注").build()));

    2.客服消息接口
    客服消息接口,应用于公众号主动向特定用户(必须满足该用户在48小时内与公众号有交互)发送特定格式的消息,应用场景例如:用户在微页面上完成了抽奖,而这时候公众号主动向用户推送中奖信息。所回复的不同消息的格式,参见开发者文档,下面以回复文本消息作为示例,需要注意的是推送的消息data必须满足json格式,请求类型为post。返回的json数据中,若errorcode为0,则代表推送成功。

     //推送中奖消息
            String data = "{"+
                    "\"touser\":\""+openid+"\","+
                    "\"msgtype\":\"text\","+
                    "\"text\":"+
                    "{"+
                    "\"content\":\""+content+"\""+
                    "}"+
                    "}";
            System.out.println(data);
            String reMsg0 = UrlReqUtil.post("https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token="+access_token,data);
            JSONObject jsonObject = JSONObject.fromObject(reMsg0);
            if(0 != (Integer) jsonObject.get("errcode")) throw new RuntimeException("通知用户失败");

    3.模板消息接口
    模板消息接口的使用场景大体与客服消息接口一致,只是不需要证明对象用户“在线”,即48小时内与当前公众号有交互记录,因而应用范围更为广泛。在具有权限的服务号中使用该接口时,需要向系统申请对应模板,并得到模板号,作为调用凭据。在测试号环境下,则需要自定义模板。例如:
    这里写图片描述
    其中模板内容需要严格遵循指定的格式,即在需要调用才填入的变量值的定义方式为:{{xxxx.DATA}},其中“xxxx”为调用时对应的字段名。
    以下是调用代码:jsonData数据部分遵循json数据格式。
    其中touser:为用户在该公众号下的openid
    template_id:为模板id
    对于每个字段,包含两个值,一是value,即填入模板的具体值;二是color,即对应的字体颜色。
    请求方式为post,判断是否成功同样是依据errcode字段,为0则成功。

            //推送模板消息
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            String jsonData = "{" +
                    "\"touser\":\""+openid+"\"," +
                    "\"template_id\":\"maD2W1yaTvkXmh1dRjXEsMHUc9dDP8Xh1eANP***ig\"," +
                    "\"topcolor\":\"#FF0000\"," +
                    "\"data\":{" +
                    "\"title\":{\"value\":\"恭喜您中奖啦\",\"color\":\"#173177\"}," +
                    "\"nickname\":{\"value\":\""+nickname+"\",\"color\":\"#173177\"}," +
                    "\"prizeLevel\":{\"value\":\""+rewardLevel+"\",\"color\":\"#173177\"}," +
                    "\"prizeContent\":{\"value\":\""+ ConfigParamUtil.PRIZE_CONTENT.split(",")[rewardLevel]+"\",\"color\":\"#173177\"}," +
                    "\"time\":{\"value\":\""+dateFormat.format(new Date())+"\",\"color\":\"#173177\"}," +
                    "\"bonus\":{\"value\":\"10积分\",\"color\":\"#173177\"}}}";
            String reMsg1 = UrlReqUtil.post("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+access_token,jsonData);
            JSONObject jsonObject = JSONObject.fromObject(reMsg1);
            if(0 != (Integer) jsonObject.get("errcode")) throw new RuntimeException("通知用户失败");
    展开全文
  • 微信公众平台消息接口使用指南

    千次阅读 2013-07-23 17:18:48
    微信公众平台消息接口使用指南   一 、简介 公众平台消息接口为开发者提供了一种新的消息处理方式。 二 、 申请消息接口 点击申请,如实填写负责人姓名 、 手机号和邮箱,填写网址url和token,其中token可由开发者...

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

     

    一 、简介

    公众平台消息接口为开发者提供了一种新的消息处理方式。

    二 、 申请消息接口

    点击申请,如实填写负责人姓名 、 手机号和邮箱,填写网址url和token,其中token可由开发者可以任意填写,用作生成签名。

     

    三 、 网址接入

    公众平台用户提交信息后,我们将以GET请求方式请求到填写的Url上,并且带上四个参数:

    * signature — 微信加密签名
    * timestamp — 时间戳
    * nonce — 随机数
    * echostr — 随机字符串

    开发者通过检验signature对网址接入合法性进行校验。若此次GET请求原样返回echostr参数内容,则接入生效,否则接入失败。 验证signature将结合开发者填写的token参数、timestamp参数和nonce参数等,加密流程:

    * 将token、timestamp、nonce三个参数进行字典序排序
    * 将三个参数字符串拼接成一个字符串进行sha1加密
    * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。

    四 、 消息推送

    当普通微信用户向公众账号发消息时,公众平台将POST该消息到填写的Url上(现支持文本消息以及地理位置消息)。结构如下:

    文本消息xml格式

     <xml>
     <ToUserName><![CDATA[toUser]]></ToUserName>
     <FromUserName><![CDATA[fromUser]]></FromUserName>
     <CreateTime>1348831860</CreateTime>
     <MsgType><![CDATA[text]]></MsgType>
     <Content><![CDATA[this is a test]]></Content>
     </xml> 
     ToUserName 消息接收方微信号,一般为公众平台账号微信号
     FromUserName 消息发送方微信号
     CreateTime 消息创建时间
     MsgType 文本消息为text
     Content 消息内容

    地理位置消息xml格式

     <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>
     </xml> 
     ToUserName 消息接收方微信号,一般为公众平台账号微信号
     FromUserName 消息发送方微信号
     CreateTime 消息创建时间
     MsgType 消息类型,地理位置为location
     Location_X 地理位置纬度
     Location_Y 地理位置经度
     Scale 地图缩放大小
     Label 地理位置信息

    图片消息结构

     <xml>
     <ToUserName><![CDATA[toUser]]></ToUserName>
     <FromUserName><![CDATA[fromUser]]></FromUserName>
     <CreateTime>1348831860</CreateTime>
     <MsgType><![CDATA[image]]></MsgType>
     <PicUrl><![CDATA[this is a url]></PicUrl>
     </xml> 
     ToUserName 消息接收方微信号,一般为公众平台账号微信号
     FromUserName 消息发送方微信号
     CreateTime 消息创建时间
     MsgType 消息类型image
     PicUrl 图片链接,开发者可以用HTTP GET获取
     

    五 、 消息回复

    对于每一个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> 
     FromUserName 消息发送方
     ToUserName 消息接收方
     CreateTime 消息创建时间
     MsgType 消息类型,文本消息必须填写text
     Content 消息内容,大小限制在2048字节,字段为空为不合法请求

    回复图文消息格式

     <xml>
     <ToUserName><![CDATA[toUser]]></ToUserName>
     <FromUserName><![CDATA[fromUser]]></FromUserName>
     <CreateTime>12345678</CreateTime>
     <MsgType><![CDATA[news]]></MsgType>
     <Content><![CDATA[]]></Content>
     <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>
     </xml> 
     FromUserName 消息发送方
     ToUserName 消息接收方
     CreateTime 消息创建时间
     MsgType 消息类型,图文消息必须填写news
     Content 消息内容,图文消息可填空
     ArticleCount 图文消息个数,限制为10条以内
     Articles 多条图文消息信息,默认第一个item为大图
     Title 图文消息标题
     Description 图文消息描述
     PicUrl 图片链接,支持JPG、PNG格式,较好的效果为大图640*320,小图80*80,限制图片链接的域名需要与开发者填写的基本资料中的Url一致
     Url 点击图文消息跳转链接

     

    星标消息

    在xml结构中,有一个FuncFlag字段,开发者可以通过填写FuncFlag字段为1来对消息进行星标,你可以在实时消息的星标消息分类中找到该消息

    六 、 示例代码

    PHP:下载

     

    展开全文
  • 调用微信接口发送消息

    万次阅读 2017-07-14 16:05:18
    微信接口

    region 微信接口

        /// <summary> 
        /// 请求Url,发送json数据 
        /// </summary> 
        public static string PostUrl(string url, string postData)
        {
            byte[] data = Encoding.UTF8.GetBytes(postData);
    
            // 设置参数 
            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
            CookieContainer cookieContainer = new CookieContainer();
            request.CookieContainer = cookieContainer;
            request.AllowAutoRedirect = true;
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = data.Length;
            Stream outstream = request.GetRequestStream();
            outstream.Write(data, 0, data.Length);
            outstream.Close();
    
            //发送请求并获取相应回应数据 
            HttpWebResponse response = request.GetResponse() as HttpWebResponse;
            //直到request.GetResponse()程序才开始向目标网页发送Post请求 
            Stream instream = response.GetResponseStream();
            StreamReader sr = new StreamReader(instream, Encoding.UTF8);
            //返回结果网页(html)代码 
            string content = sr.ReadToEnd();
            return content;
        }
    
        /// <summary>
        /// 获取密钥
        /// </summary>
        /// <param name="corpid">appID</param>
        /// <param name="corpsecret">secID</param>
        /// <returns></returns>
        public static string GetQYAccessToken(string corpid, string corpsecret)
        {
            string getAccessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}";
            string accessToken = "";
    
            string respText = "";
    
            //获取josn数据
            string url = string.Format(getAccessTokenUrl, corpid, corpsecret);
    
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    
            using (Stream resStream = response.GetResponseStream())
            {
                StreamReader reader = new StreamReader(resStream, Encoding.Default);
                respText = reader.ReadToEnd();
                resStream.Close();
            }
    
            try
            {
                int start = respText.IndexOf("access_token");
                int end = respText.IndexOf("expires_in");
                start += 15;
                end -= 3;
                respText = respText.Substring(start, end - start);
    
                //通过键access_token获取值
                accessToken = respText;
            }
            catch (Exception ex) { }
    
            return accessToken;
        }
    
        /// <summary>
        /// 填充数据后返回json字符串
        /// </summary>
        /// <param name="touser"></param>
        /// <param name="tmpid"></param>
        /// <param name="title"></param>
        /// <returns></returns>
        public static string FillData(string touser,string tmpid,string title)
        {
            string responeJsonStr = "{";
            responeJsonStr += "\"touser\": \"" + touser + "\",";
            responeJsonStr += "\"template_id\": \"" + tmpid + "\",";
            responeJsonStr += "\"url\": \"\",";
            responeJsonStr += "\"topcolor\": \"#FF0000\",";
            responeJsonStr += "  \"data\": {";
            responeJsonStr += "  \"first\": {\"value\":\"" + title + "\",\"color\":\"#FF0000\"},";
            responeJsonStr += "  \"name\": {\"value\":\"用户你好\",\"color\":\"#FF0000\"},";
            responeJsonStr += "  \"user\": {\"value\":\"感谢你的支持\",\"color\":\"#FF0000\"}";
            responeJsonStr += "}";
            responeJsonStr += "}";
            return responeJsonStr;
        }
    
        /// <summary>
        /// 发送微信消息
        /// </summary>
        /// <param name="user">用户</param>
        /// <param name="title">标题</param>
        public static void SendWXmessage(string user,string title)
        {
            string mytoken = GetQYAccessToken("wx9f04b66052974517", "d4624c36b6795d1d99dcf0547af5443d");
            PostUrl(string.Format("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}", mytoken), FillData("oEA4av_bAk7ew5k8qLc-kmzX7_SM", "dZetMJDGa9yr-aej8r3oxXWO3eOtlWIZD_DVddOe5mM", title));
        }
        #endregion 
    
    展开全文
  • 1 行代码,实现微信消息发送

    万次阅读 2018-08-23 16:31:05
    看到最近好多大神写操作微信的文章,于是,我又想,是不是可以将消息发送到微信上? 微信发送消息有如下几个思路: itchat 模块 使用个人公众号 使用其他公众号封装好的发送消息的功能; ...
  • 微信API接口文档

    万次阅读 2019-05-24 01:03:22
    微信API接口文档 微信API接口文档,微信API接口,个人微信聊天接口api 微信手机客户端上传的通知类消息 1、手机客户端微信上线通知 WeChatOnlineNotice = 1020; 2、手机客户端微信下线通知 ...
  • 想想将个人微信变为一个机器人...将微信消息传输到机器人接口(这里以图灵为例),获取机器人的返回消息。将返回消息返回给微信消息的发送人。 通过以上就可以实现将微信个人号变为聊天机器人的目的。 开发步骤 1、...
  • 微信客服推送信息接口报45015错误原因
  • 微信公众号的调试与测试

    万次阅读 2016-10-25 10:57:32
    作者:杨广辉 一、微信公众号简介 1、微信公众号介绍 微信公众号是开发者或商家在微信公众平台上申请的应用账号,...在这里可以通过微信渠道将品牌推广给上亿的微信用户,减少宣传成本,提高品牌知名度,打造更具影响力
  • 首先要登录企业微信的后台,新建一个应用,再把该应用的AgentId, Secret等信息在讲课接口中配置好,有了这些信息,讲课接口才能调用企业微信的API,把微信中的消息转发到企业微信中。初次配置,请
  • 微信在线接口调试工具的使用

    万次阅读 2017-08-06 12:19:57
    微信公众平台在线测试接口的使用   1.在线测试接口的地址:https://mp.weixin.qq.com/debug 会出现以下界面:   接口类型为基础支持的接口负责获取access_token以及获取微信服务器的IP地址   这张表在...
  • 通过微信客服接口发送一条信息,微信的服务号里却同时接受到三条一模一样的数据。 经过我反复调试,最后发现与微信的响应机制有关:微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。如何...
  • 很急很急,多谢!! 微信公众号接口如何回复多条消息,其中包含音乐消息且有标题描述,求大神指教! ![CSDN移动问答][1] [1]: http://wx.reenoo.com/20140816163516.jpg
  • 获取微信公众号二维码接口

    万次阅读 2019-05-14 17:20:49
    地址 https://open.weixin.qq.com/qr/code?username=gh_b10f0123b741 参数为 公众号微信号或原始id
  • 在模版消息退出之前,微信公众号要gei
  • 此时,我们要通过接口来配置微信自定义菜单,微信自定义菜单接口链接首先,我们打开微信公众平台接口调试工具 接口调试工具 1.通过appid以及secret来获取access_token, 2.组织创建菜单内容。微
  • 微信交互数据包分析

    千次阅读 2017-08-22 09:04:31
    该篇文章主要对微信交互数据报文进行了抓包分析,抓包可以用wireshark通过hub抓取wan口数据包,也可以通过tcpdump在设备里面抓包。通过这些包特征可以对微信进行识别和过滤。微信发送消息 数据包: 向公众号发送...
  • 微信小程序如何调用后台接口

    万次阅读 2018-07-03 17:48:32
    本课程讲解了微信小程序如何调用线上API中心接口,主要使用了wx.request去和API中心交互,API中心提供给了下面的几个接口:接口是用JFinal开发封装@jfinal 用key-value形式存取数据。API中心还提供了接口测试工具,...
  • 我们知道,要想使用微信支付实现扫码支付、公众号、商城、小程序、网页等产品或者服务购买,需要申请微信服务号,并且要企业认证,还要提交微信支付申请。这些都是企业有条件才会去做的事,那么个人开发者,如何拥有...
  • 微信接口调用频次限制说明

    万次阅读 2018-03-27 14:10:25
    为了防止公众号的程序错误而引发微信服务器负载异常,默认情况下,每个公众号调用接口都不能超过一定限制,当超过一定限制时,调用对应接口会收到如下错误返回码:{"errcode":45009,"errmsg":&...
1 2 3 4 5 ... 20
收藏数 182,771
精华内容 73,108
关键字:

微信消息接口