生活随笔
收集整理的這篇文章主要介紹了
微信大屏幕(一)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
微信大屏幕技術(shù)會(huì)分幾次寫,包括微信上墻,微信投票,微信抽獎(jiǎng),微信搖一搖等。 這篇先扯微信上墻(PHP版)。
大概的思路其實(shí)也不難,流程如下:微信后臺(tái)接收消息事件,關(guān)鍵詞判斷(如“我要上墻”),觀眾當(dāng)前狀態(tài)判斷(是否處于上墻模式),存儲(chǔ)用戶的上墻內(nèi)容,后臺(tái)審核,通過審核并上墻。 ? 下面分步詳解微信上墻開發(fā):
首先你要有自己的公眾號(hào),訂閱號(hào)或服務(wù)號(hào)均可。不管你是使用開發(fā)框架還是沒有,作為開發(fā)者的你應(yīng)該已經(jīng)知道騰訊會(huì)將用戶消息和事件發(fā)送到你配置的服務(wù)器,你在該url指向的php文件中即可接收消息或事件。 在實(shí)現(xiàn)時(shí),我是直接在該文件,這邊我管它叫接口文件吧,進(jìn)行關(guān)鍵詞和狀態(tài)判斷并進(jìn)行存表操作。參考代碼如下:$mem=M('member');$oMap['openid']=$data['FromUserName'];//獲取用戶的當(dāng)前的狀態(tài)$w_status=$mem->where($oMap)->getField('status');//三個(gè)判斷進(jìn)行用戶的上墻信息表的建立//判斷當(dāng)前的用戶狀態(tài),看是否處于上墻模式,如果滿足則存儲(chǔ)該消息if(!$w_status&&$data['Content']!="退出"){$follows=M('follows');$data['contents']=$data['Content'];$data['openid']=$data['FromUserName'];$ctime=date('Y-m-d H:i:s',$data['CreateTime']);$data['ctime']=$ctime;//獲取用戶信息,相關(guān)函數(shù)屬于自己寫的封裝函數(shù),可根據(jù)自己的情況獲取$token = get_token();$openid = get_openid(); $userinfo = getWeixinUserInfo($openid, $token);$headPic = $userinfo['headimgurl'];$data['headimge']=$headPic;$data['nickname']=$userinfo['nickname'];$follows->add($data);$weixin->replyText("您的信息我們已經(jīng)收到,待審核后即可上墻,回復(fù)【退出】離開上墻模式");}if(preg_match('/我要上墻/i',$data['Content'])){// preg_match('/\#微唱\#(.+)/i',$data['Content'], $matchs);// $oMap['openid']=$data['FromUserName'];$data['status']=0;$mem->where($oMap)->save($data);$articles[0] = array("Title" => "進(jìn)入上墻模式,回復(fù)【退出】,離開上墻模式","Description" => "小伙伴們嗨起來,讓全場(chǎng)聽到你的聲音,更有神秘大獎(jiǎng)哦~~","PicUrl" => "","Url" => "",);$weixin->replyNews($articles);}if(preg_match('/退出/i',$data['Content'])){$data['status']=1;$mem->where($oMap)->save($data);$articles[0] = array("Title" => "已成功退出上墻模式,回復(fù)【我要上墻】,進(jìn)入上墻模式","Description" => "歡迎再次加入我們的討論哦!!~~","PicUrl" => "","Url" => "",);$weixin->replyNews($articles);}
現(xiàn)在我們已經(jīng)有自己 的上墻信息表,并只要有新的用戶發(fā)送上墻信息,都會(huì)記錄下來,接下來要做的就是從表中讀取相關(guān)信息,并進(jìn)行上墻。在這里為了能實(shí)現(xiàn)上墻的動(dòng)態(tài)效果,即沒隔一段時(shí)間自動(dòng)刷出一條審核通過的信息。 ?在我們審核通過一條信息時(shí),我們將存上墻信息表的exam字段做標(biāo)記,在ajax向后臺(tái)請(qǐng)求上墻信息時(shí),將相應(yīng)的審核通過的信息傳到前臺(tái)即可。 相關(guān)的后臺(tái)php響應(yīng)參考代碼如下:$wall=M('follows');$start=I('get.lastid');$lastid=$start+1;$info=$wall->where('exam=1')->order('id Asc')->limit($start.',1')->select();$data[$lastid]['id'] = $info[0]['id'];// $data[$lastid]['fakeid'] = $info[0]['fake_id'];$data[$lastid]['num'] = $lastid;$data[$lastid]['content'] = $info[0]['contents'];$data[$lastid]['nickname'] = $info[0]['nickname'];$data[$lastid]['id'] = $info[0]['id'];if(count($info)==0){ $data2=array('data'=>$data,'ret'=>0);$this->ajaxReturn($data2,'JSON');}else{$data2=array('data'=>$data,'ret'=>1);$this->ajaxReturn($data2,'JSON');}}
這樣我們有了要上墻的數(shù)據(jù),離實(shí)現(xiàn)上墻就不遠(yuǎn)啦~~最后要做的就如如何利用js等將上墻內(nèi)容動(dòng)態(tài)的表現(xiàn)出來。在這里,我是將后臺(tái)傳過來的上墻信息嵌入到html代碼中,在利用定時(shí)器函數(shù),每隔一段時(shí)間自動(dòng)檢測(cè)是否有新的審核通過的上墻信息,如果有,就利用slidedown函數(shù)將新信息下拉刷新到大屏幕,參考代碼如下:function messageAdd()
{if(cur==len){messageData();return false;}if(data.length != 0){if(data[cur][1]==""){data[cur][1]="";}var str='<li id=li'+cur+' οnclick="viewOne('+cur+',this);"><div class=m1><div class=m2><div class="pic"><img src="" width="100" height="100" /></div><div class="c f2"><span>'+data[cur][2]+':</span>'+data[cur][3]+'</div></div></div></li>';
$("#list").prepend(str);$("#li"+cur).slideDown(800);cur++;}messageData();}
function messageData()
{//ajax實(shí)現(xiàn)從后臺(tái)獲取上墻信息var url='__URL__/wallmessage';$.getJSON(url,{lastid:lastid},function(d) {// alert(d);return;if(d['ret']==1){$.each(d['data'], function(i,v){data.push(new Array(v['num'],v['id'],v['nickname'],v['content']));lastid=v['num'];len++;});}else{// alert('沒消息,每隔5秒ajax一次');window.setTimeout('messageData();', 2000);} });
}
window.οnlοad=function()
{messageAdd();mtime=setInterval(messageAdd,3000);}
至此微信上墻功能已實(shí)現(xiàn),怎樣,是不是很簡(jiǎn)單。 關(guān)鍵步驟就是建表,讀表,效果實(shí)現(xiàn)~~~
有任何疑問歡迎留言哈
總結(jié)
以上是生活随笔為你收集整理的微信大屏幕(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。