【微信开发】订阅号的创建、根据关键词回复文本,视频,图片,音频

小白的微信开发第一天,废话少说直接动手做!

 

 

【订阅号】

  1.进入官网微信开发公众平台,选择立即注册

    https://mp.weixin.qq.com/

    微信开发

  

  2.根据实际情况选择要注册的账号类型(个人一般订阅号即可)

    注册订阅号

  

公众平台服务号、订阅号、企业号的相关说明

  1、订阅号:主要偏于为用户传达资讯(类似报纸杂志),认证前后都是每天只可以群发一条消息;
  2、服务号:主要偏于服务交互(类似银行,114,提供服务查询),认证前后都是每个月可群发4条消息;
  3、企业号:主要用于公司内部通讯使用,需要先验证身份才可以关注成功企业号。
 
温馨提示:
  1)如果想简单的发送消息,达到宣传效果,建议可选择订阅号;
  2)如果想用公众号获得更多的功能,例如开通微信支付,建议可以选择服务号;
  3)如果想用来管理内部企业员工、团队,对内使用,可申请企业号;
  4)订阅号可通过微信认证资质审核通过后有一次升级为服务号的入口,升级成功后类型不可再变;
  5)服务号不可变更成订阅号。
  
 
图例说明:
  
 
3.填写信息
 
  
 
 

  3.1 填写邮箱后选择激活邮箱,登录邮箱打开邮件复制验证码粘贴到邮箱验证码

    3.1.1 发送验证码

    注册微信订阅号

     3.1.2 复制验证码

     微信平台验证码

     3.1.3 粘贴验证码并填写信息,点击注册

    

  3.2 选择类型(根据自己实际情况选择)

    3.2.1 选择地区

      注册微信订阅号

      3.2.2 选择服务类型(我选择的是订阅号)

         注册微信订阅号

     ps:类型一旦选择不可修改!

     注册微信订阅号

 

   3.3 信息登记

    3.3.1 根据自己情况选择(我选择的为个人)

    注册微信订阅号

     3.3.2  填写基本信息并扫码验证

      注册微信订阅号

      ps:主体信息提交后不可修改

     

 

   3.4 公众号信息填写

    3.4.1 填写信息

    注册微信订阅号

     3.4.2 前往公众平台

    注册微信订阅号

     公众平台页面

    注册微信订阅号

 

选择右上角--》账号详情可上传头像和获取订阅号二维码

 微信开发

 

 

 

到此微信订阅号注册完成,接下来进入开发环节,没有服务器的可以选择公众平台测试账号

微信开发

 

 

 

【微信开发】

   1.基本配置

    订阅号的主页面---》开发---》基本配置

    微信开发

     

        勾选我同意---》成为开发者

     微信开发

     ps:

       成为微信公众平台开发者,你将可以使用公众平台的开发接口,在你自身服务器上接收用户的微信消息,并可按需回复。此外,我们还提供了更多更高级的接口来完善公众号的功能:

        1. 会话界面的自定义菜单

        2. 多客服接口,提供贴心快捷的客服服务

        3. 获取用户地址位置,精确提供服务

        4. 高级群发接口,实现更灵活的群发能力

        5. 用户分组接口,方便管理用户

        还有很多接口,等你来体验。

    

  2.启用开发者密码(密码需要自己保存)

    2.1 启用

    微信开发

     2.2 按流程操作

      2.2.1 身份确认

         微信开发

        2.2.2 密码验证

       

       2.2.3  查看开发者密码,确定进入下一步设置白名单

     

      2.2.4  设置白名单(很重要,昨天就被这家伙给坑了)

      

 

 

      2.2.4.1  获取到自己的IP外网

       腾讯IP分享计划

       微信开发 关键词回复

         输入IP确定后,然后扫码确认即可

 

  3. 启用服务器配置

    3.1 修改配置

      微信开发 关键词回复

     3.2 配置页面

      3.2.1 微信端配置

        1. URL是开发者用来接收微信消息和事件的接口URL,你服务器的公网IP或者域名

        2. Token可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)

        3. EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥

 

        微信开发

        3.2.2 服务器端配置

        https://github.com/wangyang0210/WeCheat/tree/master/checkToken

          通过远程连接工具将此文件放入到你服务器网页的根目录下,index.php中的token值要和微信端填写的token值一致,否则会验证不通过

          

       3.2.3 提交验证

        成功后点击启用

          

           ps:

            

     3.3 撸代码

      写了这么多终于可以撸代码了,代码如下

      参考文档:  被动回复用户消息

index.php      

 

<?php
    $postStr = file_get_contents("php://input");
    file_put_contents('./data.txt', $postStr);

    if (!empty($postStr)){

            libxml_disable_entity_loader(true);
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $fromUsername = $postObj->FromUserName;
            $toUsername = $postObj->ToUserName;
            $keyword = trim($postObj->Content);
            $time = time();
            $textTpl = "<xml>
                        <ToUserName><![CDATA[%s]]></ToUserName>
                        <FromUserName><![CDATA[%s]]></FromUserName>
                        <CreateTime>%s</CreateTime>
                        <MsgType><![CDATA[%s]]></MsgType>
                        <Content><![CDATA[%s]]></Content>
                        <FuncFlag>0</FuncFlag>
                        </xml>";
            if(!empty( $keyword ))
            {

                if ($keyword == '图片') {

                        $imgtml = "
                                    <xml>
                                        <ToUserName><![CDATA[%s]]></ToUserName>
                                        <FromUserName><![CDATA[%s]]></FromUserName>
                                        <CreateTime>%s</CreateTime>
                                        <MsgType><![CDATA[image]]></MsgType>
                                        <Image><MediaId><![CDATA[%s]]></MediaId></Image>
                                   </xml>
                                ";
                        $imgid = "w9ffB-g3DM1yZWiGbx7rHm9IkW9mOv7vs4WRMwTEfr0v9lsiMy9DTc6izeqrJqUL";
                        $resultStr = sprintf($imgtml,$fromUsername,$toUsername,$time,$imgid);
                        echo $resultStr;
                }else if ($keyword == '音乐') {
                        $musicTml = "<xml>
                                        <ToUserName><![CDATA[%s]]></ToUserName>
                                        <FromUserName><![CDATA[%s]]></FromUserName>
                                        <CreateTime>%s</CreateTime>
                                        <MsgType><![CDATA[music]]></MsgType>
                                        <Music>
                                           <Title><![CDATA[有我不怕]]></Title>
                                           <Description><![CDATA[送给我的小媳妇儿]]></Description>
                                           <MusicUrl><![CDATA[%s]]></MusicUrl>
                                           <HQMusicUrl><![CDATA[%s]]></HQMusicUrl>
                                        </Music>
                                     </xml>";
                        $musicUrl = "http://wangnana.cn/love.mp3";
                        $resultStr = sprintf($musicTml,$fromUsername,$toUsername,$time,$musicUrl,$musicUrl);
                        echo $resultStr;
                }else if ($keyword == '视频') {
                        
                        $videotml =" 
                                <xml>
                                  <ToUserName><![CDATA[%s]]></ToUserName>
                                  <FromUserName><![CDATA[%s]]></FromUserName>
                                  <CreateTime>%s</CreateTime>
                                  <MsgType><![CDATA[video]]></MsgType>
                                <Video>
                                  <MediaId><![CDATA[%s]]></MediaId>
                                  <Title><![CDATA[视频回复]]></Title>
                                  <Description><![CDATA[测试视频]]></Description>
                               </Video>
                                </xml>";   

                                $videoid = "8OgNkp7FKFpwd3NRBIy10i8611O6UHumzW_wjTx3W1X-c5rlQ-GAUaEgS3vnREM1";
                                $resultStr = sprintf($videotml,$fromUsername,$toUsername,$time,$videoid);
                                echo $resultStr;                

                }else{
                    $msgType = "text";
                    $contentStr = "欢迎来到我们的世界,接下来是吃狗粮的时间!";
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                    echo $resultStr;
                }


            }else{
                echo "啊哦,要亲亲(づ ̄3 ̄)づ╭❤~";
            }

    }else {
        echo "";
        exit;
    }

 

 

 

    3.4 如何获取视频/图片的media_id(没写方法,利用开发者工具中的接口调试工具来获取的)

      微信公众平台接口调试工具

         3.4.1  获取access_token的值

         这时候就用到前面基本配置的两个值了还有我们的白名单,如果出问题那就请查看你现在的外网IP是否在白名单中,如果你的AppSecret没保存那只好重置开发者密码咯

         

             都没有问题后,返回的值就是我们需要的access_token咯

          微信开发

         3.4.2  获取到图片的media_id

             接口类型--->基础支持

             接口列表---->多媒体文件上传接口/media/upload

             参数列表

              access_token ---->刚才获取的token

              type---->img

              media---->选择上传的文件

          我上传的是2.jpg

          微信开发

          点击检查获取media_id

        微信开发

  测试效果:

      一通百通,这个是写死的,接下来就是把死的转活,视频的同理,音乐的直接文档就可以搞出来,让我偷下懒吧~

      

         

一上午都在弄这个,有点浪费时间,不过加深了自己的理解也是很不错的一件事

  如果出错请看https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433747234,当然也可以和我这个小白分享,我可是很愿意解决问题的,时间允许的情况下哈~

       

 

       

 

 

 

 

 

 

 

 

 

 

 

posted @ 2018-10-16 12:12  。思索  阅读(1477)  评论(5编辑  收藏  举报