下面将一步步来实现微信公众平台的开发
设置了开发者模式的url和token后我们就可以进行开发了
Token你自己随便设置
一、 我们要先验证消息的是否来自微信 当然这部也可以省略 实现如下
开发者接收用户消息的时候,微信服务器将发送GET请求到填写的URL上,并且带上四个参数(signature、timestamp、nonce、echostr),开发者通过对签名(即signature)的效验,来判断此条消息的真实性。
Signatur:微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数
Timestamp:时间戳
Nonce:随机数
Echostr:随机字符串
验证代码:
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;//这个是你自己设置的token
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
二、接受发送的消息
当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。我们可以在开发者手册上
http://mp.weixin.qq.com/wiki/index.php?title=%E6%8E%A5%E6%94%B6%E6%99%AE%E9%80%9A%E6%B6%88%E6%81%AF 看到各个类型消息的xml格式,我们要做的就是获取xml中的信息。实现代码如下:
xml = file_get_contents("php://input");//获得POST过来的xml
$xml = new SimpleXMLElement($xml); //创建xml对象
foreach ($xml as $key => $value) {
$data[$key] = strval($value);
}
将xml中的标签放到$data的键中 内容放到值中
以文本信息为例
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[this is a test]]></Content>
<MsgId>123xxxxxxxxxxxx</MsgId>
</xml>
如果我们想要的到用户发送的文本内容,使用$data[‘Content’] 就可以得到
通过 MsgType可以得到发送的信息类型有 text image voice video link location event 还有一些事件 例如 关注 取消关注等 xml中会有一个Event 标签 类型有:
包括subscribe(订阅)、unsubscribe(取消订阅)、CLICK(自定义菜单的点击事件) SCAN扫描 你可以通过 判断$data[‘MsgType] 和 $data[‘Event‘] 来根据自己的数据库或设计好的回复内容来进行操作
三、对于回复的信息你需要echo 一个xml字符串 回复的格式在文档中也可以找到
$retTMP = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";
//对消息模版中的通配符进行替换
$resultStr = sprintf($retTMP,$fromUserName,$toUserName,time(),$retMsg);
//输出XML中的描述
echo $resultStr;
四、 调用接口
微信中有许多多接口例如发送客服消息 获得用户信息 列表 分组等
这些怎么实现呢?
这些其实就是为了让我们得到自己粉丝的信息我们好存在自己的数据库中
首先我们看到这些接口链接都需要ACCESS_TOKEN,可能有些人不知道这个怎么获得。其实这个有时通过接口请求获得一个ACCESS_TOKEN的,但是首先你要确定你的公众好是服务号 有Appid和AppSecret
首先我们要有两个函数用来请求接口
function curlGet($url){
$result = file_get_contents($url);
if (empty($result)){
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
}
$return = json_decode($result,true);
return $return;
}
public function curlPost($url,$Referer,$data) {
$header = array(
'Accept:*/*',
'Accept-Charset:utf-8;q=0.7,*;q=0.3',
'Accept-Encoding:gzip,deflate,sdch',
'Accept-Language:zh-CN,zh;q=0.8',
'Connection:keep-alive',
'Host:mp.weixin.qq.com',
'Origin:https://mp.weixin.qq.com',
'Referer:'.$Referer,
'X-Requested-With:XMLHttpRequest'//,
// 'Content-Type:application/x-www-form-urlencoded'
);
$curl = curl_init(); //启动一个curl会话
curl_setopt($curl, CURLOPT_URL, $url); //要访问的地址
curl_setopt($curl, CURLOPT_HTTPHEADER, $header); //设置HTTP头字段的数组 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); //对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); //从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20xx0101 Firefox/23.0'); //模拟用户使用的浏览器
//curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); //使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); //自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); //发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); //Post提交的数据包
curl_setopt($curl, CURLOPT_TIMEOUT, 30); //设置超时限制防止死循环
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //获取的信息以文件流的形式返回
curl_setopt($curl, CURLOPT_SSLVERSION,3);
$result = curl_exec($curl); //执行一个curl会话
curl_close($curl); //关闭curl
$return = json_decode($result,true);
return $return;
}
这两个一个是get方式请求一个是post方式请求 由于微信返回的信息基本都是json格式所以我们在函数内部已经将json变成了数组
获得ACCESS_TOKEN的方法
得到 AppId和 AppSecret $appid $appsecret
$url_get = 'https://api.weixin.qq.com/cgi-
bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$appsecret;//请求的地址 $result=$this->curlGet($url_get);
if(isset($result['errcode'])){
//请求出现错误 可以查看手册中的 基础支持中的全局返回码说明
}
$ACC_TOKEN = $result['access_token'];
得到token后我们就可以请求接口了 以关注者列表或粉丝的详细信息为例:我们可以把粉丝放到自己的数据库中这样以后操作就会方便很多
$getURL="https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$ACC_TOKEN; $list=$this->curlGet($getURL);
if(isset($list['errcode'])){//获取失败
}
if(isset($list['count']) && !$list['count']){
//未发现新的粉丝");
}
下面我们就可以根据列表来请求得到每个粉丝的具体信息
foreach($list['data']['openid'] as $openid)
{
//获取用户信息
$url_info='https://api.weixin.qq.com/cgi-
bin/user/info?access_token='.$ACC_TOKEN.'&openid='.$openid.'&lang=zh_CN';
$indata[]=$this->curlGet($url_info);
}
$indata里面存储就是每个粉丝的信息,
然后我们在获得粉丝所在分组的信息
foreach($indata as $key=>$data){
$datagg=array();
$datagg["openid"]=$data['openid'];
$datagg=json_encode($datagg); //看手册接口的请求的POST参数要json格式 $refer='https://mp.weixin.qq.com/cgi-
bin/contactmanage?t=user/index&token='.$ACC_TOKEN.'&lang=zh_CN';
$re_group=$this->curlPost($url_group,$refer,$datagg);
$data[$key]['group']=$re_group['groupid'];
}
这样就可以得到粉丝的所在分组
其他接口形式都是和上面差不多 所区别的就是注意是GET还是POST以及参数的格式
一个微信公众平台运营者的36条总结
经常有很多客户来咨询我们,想了解微信营销的方法,如何拉粉,如何去推送内容等等。今天呢,我就带来一位微信公众账号运营者的心得给大家,从实战的角度,总结了微信营销的注意事项和操作指南,非常值得大家去学习和思考,下面就分享给大家。
1.简单就是力量,不要把自已的微信公众账号变成万能的功能的应用。可以免费听音乐丶机器陪聊,这些功能只会淡化企业核心的价值,请删掉这些功能。
2.微信营运的目是维持顾客的关系。99%的时间都用来培养顾客的信任度,请暂时忘记销售,天天促销,不如29天培养顾客,用1天的时间用来促销更有效,请暂时忘记销售。
3.微信营销没有任何营销秘诀,比的就是投资和执行力,想不投入就能获取大量的粉丝是不可能的事情,不要只看到3个月获取90万粉丝的案例,先问一问他们投入多少资金和人力。
4.如果你不想投入太多的资金,就要选择投入时间,再加入执行力的到位,才能达到你要的目的。
5.不要忙于每一天推送大量的内容,给潜在顾客,创造可以跟读者沟通的话题。你要知道所有价值都来于沟通,推送再好的内容,不如跟读者沟通一次。
6.想和读者创造更多沟通的机会,就要问读者更多的问题,问一问读者喜欢什么时间接收内容,对自已公众账号提出宝贵的见意等等。
7.不要被那些3个月100万的粉丝冲昏了头脑。粉丝再多,如果不能转化成价值,就跟本没有用,我们需要的粉丝是那些目标粉丝,粉丝的质量比粉丝的数量
更重要。
8.发布文章不一定要长篇大论,可是一定要引发读者的思考,一般内容在300至500字左右。
9.关注竞争对手的微信,关注了10丶50个就有50个人教你怎样做好微信营销,你要做的就是优化他们所有的方法。请记住,竞争对手是最好的老师。
10.新手开始学习玩微信从关注优质的微信开始学习,记住那些优秀玩家的方,每一天都拿笔记下来,自已对比一下那些地方可以做的更好,用利于自已以后运营微信公众账号。
11.认真分析自已的行业是否需要用微信公众平台,其实很多中小企业和个体老板只要利用微信朋友圈就可以做生意,比如理发店、美容店、餐饮店、快餐店等等。
12.怎样创作内容?内容一定要原创吗?不一定,如果你不想打造行业第一领袖的地位,内容不一定要原创,可是你一定要做一件事情,就是要加入自已的观点哦!
13.我们尊重顾客,可是千万不要讨好顾客,取消关注的迟早会取消关注,只要你一直提供价值,留下的总会留下来。
14.微信营销要靠渠道,有渠道的好处就是:一天你都能获得到稳定的粉丝,不是一天进500粉丝,再过3天就没有粉丝进业。记住,粉丝要一天天的增加,每一天都有新的读者关注。
15.做微信营销是做个人微信还是做微信公众账号,我想这两个并不矛盾,可以相互的进行运营,如果你本人运作1到2个人的店面的话,建议用个人微信进行运作。如果是大店的话,一定要用上公众账号。
16.不要被微信营销案例冲昏了头脑,那些100万的粉丝案例不真实,那些很真实的案例你需要分析一下,他们投入了多少人力和物力,现在的营销案例忽悠人的多,自已认真去做好自已的微信运营。
17.做微信营销见效很慢,粉丝沉淀就要花很多的时间,通常需要3个月沉淀的时间,才能收到一些效果和利润,最重要的就是一直坚持下去。
18.要想在很短的时间里获取大量的粉丝,必须靠媒体,请记住成功靠媒体,当然了具体跟据自已的情况,是选择是做杂志媒体还是电视媒体。
19.做微信营销坚持很重要。你写一篇文章,读者不一定认可你;可是当你写到50篇至100篇的时侯读者一定会认可你。所以坚持最重要。
20.微信营销重视互动。因为它不象微博一样,可以吸引大量的人转发和评论,只有通过和顾客的沟通来取得顾客的信任。
21.在准备营销产品之前,做好整个产品销售策划。推送的内容最重要,因为内容会直接影响读者的购买,内容预热是最好的方法。
22.现在大家有一个误区,,希望一切都通过微信营销来实现,最终要顾客购买产品之前,记住不要忘了让顾客拔打订购电话,人与人交流最能解决购买当中的疑问。
23.做微信营销最好打通腾讯的产品一起使用,腾讯qq、腾讯空空间一起使用,达到的营销效果更好,因为未来的移动互联网营销会走向人脉关系链的营销。
24.做微信营销就等于在做一本行业精刊。重视的是内容的质量而不是内容的数量,高质量的内容会得到大量的人分享,会形成病毒营销。请记住,小而美的内容策略。
25.微信营销的本身的功能是以经定好了的,真正能使微信营销发挥更大的
威力的是,使用微信营销后面的那个人,所以我们除了学会使用微信功能,真正要学习是营销。
26.有人问我微信是不是营销工具,我说,你认为是就是,你认为不是就是不是,一把刀你用它来杀人它就是杀人工具,你把它放到那里,就是一块破铁,所以不要和别人去争论这个事情,其实腾讯心知肚明。
27.很多草根想按微博大号再玩微信,想弄个微信大号,这样的做法行不通,除非你能在很短的时间里获得大量的粉丝,并且是正规的操作,不正规的操作很容易被腾讯封掉,微信营销更适合企业。
28.做好精准的关键词回复功能,这样能指导读者,通过什么样的方式更了解你本人和你的企业,获得读者的信任。
29.微信的认证对提升企业的信任度很重要,所以想尽一切方法早一点通过微信认证,微信认证的条件是:500的粉丝量和一个微博认证。
30.千万不要一个人坐在家里学习微信营销,经常去一些微信营销qq群里,看一看大家都在聊什么样的话题,其实在这些群里你能学一很多东西。
31.推送,不一定要每一次都推送文章,推广一些小的知识和技巧也是很好的方法,只要能帮助潜在的顾客和读者都可以。信息量小,不会影响读者的生活,并且可以学到新的知识,这样的微信公众账号才会博得读者们喜欢。
32.见到很多人,经常用微信向自已的朋友推销产品。这是错误的做法,这么做会让你失去这个朋友,如果你想利用微信做生意,请重新申请一个账号,用来销售产品,千万不要向自已的朋友推销产品,这样会让朋友感到你这个人太没有人情味,太功利什么都跟着利益跑,很多朋友都会离你而去。
33.微信的内容,选择合适的图片很重要,经常去和自已经相关的微博里获
取一些行业里的图片,做微信营销要重视细节。
34.推送内容,晚上推送内容最好,因为这些时间读者有足够的时间来阅读。白天推送内容,适合做产品的促销,当时顾客可以订购产品,带来产品真正的销售。
35.企业先学好服务500丶1000个微信客户,用户多少不代表营销能力,仅仅是一个数量。用户的互动价值才是微信营销的核心,多创造和读者沟通的话题,让整个公众账号活跃起来。水不流动就变成的死水,公众账号没有活跃度就是一个死,没有任何的价值。
36.有必要学习一些写作技巧,怎样写标题、怎样排版、怎样用文字激发读者的兴趣。
做微信营销,不要盲目,不要跟风,也不要过于迷信那些所谓大号们的做法,适合自己的才是最重要的。
微信营销运营总结微信用户超过2亿传统媒体要怎样分一杯羹当然本文并不能为这个问题提供解决方案但希望能把问题列得更清楚些更具体些结合两…
微信营销具体内容:一、内容写作技巧A.最佳比例:80%的微信内容要对粉丝有价值,20%的内容自我推广B.内容要有及时性、可读性、教…
从事微信营销10个月的经验心得(上)从去年x月份开始研究微信营销,到现在已经10个月了。从不知道啥是公众号,不知道啥是微网站,到讲…
微信营销经验总结10条干货集文字语音视频于一体的微信正在深刻地改变着我们的社交与生活当自媒体迅速崛起微信公众号广泛受宠微信已拥有7…
微信营销技巧总结1微信营销就是以微信为平台的一种营销方式为什么微信营销现在越来越火因为大家看到了它的利润空间和发展前景大家可以发现…
学生管理系统开发总结报告项目承担部门:网络091本组成员:张文月吴倩倩李小林王姑王欢田洪超撰写人:王姑完成日期:20xx年x月x日…
1引言1.1编写目的到此,系统已基本完成。编写此计划的目的是为了对项目的完成情况进行总结,方便软件下一步的进展。1.2背景大四上学…
项目开发总结报告(GB8567——88)1引言1.1编写目的编写本报告的目的是研究本系统的总体需求、背景。对开发结果开发评价进行分…
1引言..............................................................…
项目开发总结报告(GB8567——88)1引言1.1编写目的办公自动化管理系统的开发已经基本完成。写此项目开发总结报告,以方便我们…
编者按:都说未来是属于努力实现自己预言的人,曾有人预言,新媒体时代,谁掌握了粉丝量,谁就拥有影响力!那是不是谁掌握了微信朋友圈,谁…