生活随笔
收集整理的這篇文章主要介紹了
微信大屏幕(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
微信大屏幕技術會分幾次寫,包括微信上墻,微信投票,微信抽獎,微信搖一搖等。 這篇先扯微信上墻(PHP版)。
大概的思路其實也不難,流程如下:微信后臺接收消息事件,關鍵詞判斷(如“我要上墻”),觀眾當前狀態判斷(是否處于上墻模式),存儲用戶的上墻內容,后臺審核,通過審核并上墻。 ? 下面分步詳解微信上墻開發:
首先你要有自己的公眾號,訂閱號或服務號均可。不管你是使用開發框架還是沒有,作為開發者的你應該已經知道騰訊會將用戶消息和事件發送到你配置的服務器,你在該url指向的php文件中即可接收消息或事件。 在實現時,我是直接在該文件,這邊我管它叫接口文件吧,進行關鍵詞和狀態判斷并進行存表操作。參考代碼如下:$mem=M('member');$oMap['openid']=$data['FromUserName'];//獲取用戶的當前的狀態$w_status=$mem->where($oMap)->getField('status');//三個判斷進行用戶的上墻信息表的建立//判斷當前的用戶狀態,看是否處于上墻模式,如果滿足則存儲該消息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;//獲取用戶信息,相關函數屬于自己寫的封裝函數,可根據自己的情況獲取$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("您的信息我們已經收到,待審核后即可上墻,回復【退出】離開上墻模式");}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" => "進入上墻模式,回復【退出】,離開上墻模式","Description" => "小伙伴們嗨起來,讓全場聽到你的聲音,更有神秘大獎哦~~","PicUrl" => "","Url" => "",);$weixin->replyNews($articles);}if(preg_match('/退出/i',$data['Content'])){$data['status']=1;$mem->where($oMap)->save($data);$articles[0] = array("Title" => "已成功退出上墻模式,回復【我要上墻】,進入上墻模式","Description" => "歡迎再次加入我們的討論哦!!~~","PicUrl" => "","Url" => "",);$weixin->replyNews($articles);}
現在我們已經有自己 的上墻信息表,并只要有新的用戶發送上墻信息,都會記錄下來,接下來要做的就是從表中讀取相關信息,并進行上墻。在這里為了能實現上墻的動態效果,即沒隔一段時間自動刷出一條審核通過的信息。 ?在我們審核通過一條信息時,我們將存上墻信息表的exam字段做標記,在ajax向后臺請求上墻信息時,將相應的審核通過的信息傳到前臺即可。 相關的后臺php響應參考代碼如下:$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');}}
這樣我們有了要上墻的數據,離實現上墻就不遠啦~~最后要做的就如如何利用js等將上墻內容動態的表現出來。在這里,我是將后臺傳過來的上墻信息嵌入到html代碼中,在利用定時器函數,每隔一段時間自動檢測是否有新的審核通過的上墻信息,如果有,就利用slidedown函數將新信息下拉刷新到大屏幕,參考代碼如下: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實現從后臺獲取上墻信息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);}
至此微信上墻功能已實現,怎樣,是不是很簡單。 關鍵步驟就是建表,讀表,效果實現~~~
有任何疑問歡迎留言哈
總結
以上是生活随笔為你收集整理的微信大屏幕(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。