vini123

博客园 首页 新随笔 联系 订阅 管理

申请了订阅号,就得做点有意义的事情。对于会写代码的人,肯定不甘寂寞使用编辑模式,傻瓜式的回复。所以,根据粉丝(管关注该订阅号的用户)发送过来的信息,来处理各自的事情才是最爽的。
有时候,想法是美好的。微信是腾讯生出来的,什么都得按它的标准与要求来。或许部分对象不用这样,比如招商银行,中国移动等。他们可以得到会享受到普通人所不能享受到的特权。一切,都不是平等的啊。

提到上边这个,就说到具体点的事情。微信公众平台账号分为服务号和订阅号。服务号是企业,媒体,政府等才能够申请的。目前,是300元人民币一年的审核费(一次需要审核需要300元,如果审核不通过,那就需要下一个300元,除非你放弃了)。对于订阅号,也是可以花300元进行审核的,不过申请对象一样不是个人。即使订阅号申请通过了,依然还是订阅号。我也是从昨天开始才研究微信公众平台的。对于服务号和订阅号的区别是服务号可以使用自定义菜单,能够使用高级功能。审核通过的订阅号貌似也可以自定义菜单。
对于微博认证和微信认证,以及其他的相关的信息,可以访问刘峰的csdn博客:刘峰CSDN博客
既然腾讯生出微信公众平台,自然有提供文档以及API。那么就一步步的来吧。
登录上微信公众平台,点击“服务” - “我的服务” -"向用户回复消息",如下图所示。
[caption id="attachment_794" align="aligncenter" width="517" caption="微信订阅号自动回复消息1"]微信订阅号自动回复消息1[/caption]
然后,会出现详细文档。所要用到的参数,格式都有。只是,没告诉你怎么用。当你知道怎么用了,再来看这个文档,就会发现眼前一片光明。如下图,是自动回复文字消息的介绍:
[caption id="attachment_795" align="aligncenter" width="675" caption="微信订阅号自动回复消息2"]微信订阅号自动回复消息2[/caption]
下边说下流程吧。
当粉丝发过来消息时,会以POST的形式发送。你的服务器文件会接受到信息,然后对接受到的信息进行解析。这个时候,你可以对接受到的信息进行不同的处理。比如用户如果发送过来的消息是1,你就返回给用户一段文字。如果发送过来的消息是2,你就返回给用户另一段文字。如果发送过来的消息是3,你就给用户返回一首音乐。下边,仅仅以如何返回文字消息贴出代码,语音是PHP的。PHP我只是会看懂一点。

    public function responseMsg()
    {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
        $contentStr = "";
        $msgType = "";
        if (!empty($postStr)){
                
                  $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 ))
                {
                      switch($keyword)
                      {
                          case '1':
                            $msgType = "text";
                              $contentStr = "天没有边,没有界。心是花园,也是荒野。光阴在花绽开中消亡,歌舞却永不停下。将一片云纱与你,敢不敢,愿不愿,一起飞跃长空。 \n /:rose 回复1101,收听《梦魇》";
                              $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                              echo $resultStr;
                              break;
                        default:
                            break;
                    }
              
                }
                else
                {
                    echo "Input something...";
                }
        }
        else 
        {
            echo "";
            exit;
        }
    }

 

$textTpl变量的值,就是上边说的,微信公众平台的文档中的自动回复消息的xml代码。只是,将其中需要填充的数据,抽取了出来。
按照上边的形式,你还可以自动回复图文消息,以及音乐消息。只是,普通订阅号不能回复图片,不能回复语音,不能回复视频。回复的音乐消息还没有封图。为什么不能回复呢。因为在那些的必须参数里边需要mediaId,可是普通订阅号根本就没这个。 有些人说可以通过其他方法自动回复图片,不知道怎么弄的。
想着这些限制,是有点郁闷的。
微信公众平台的研究,就两天吧。明天起,去做点别的。苦命的我,什么都得自己一个人摸索学习。
这里有免费的服务器URL以及token。想用的可以试试效果:
url:http://www.vini123.com/weixin/
token:vini123

 

文章来源:http://blog.vini123.com/793.html

 

 

 

 

 

 

posted on 2014-02-11 22:34  黑夜丶残枫  阅读(3125)  评论(0)    收藏  举报