日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php微信公众号开发入门,PHP微信公众号开发入门(二)

發(fā)布時間:2024/1/18 php 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php微信公众号开发入门,PHP微信公众号开发入门(二) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

好了,上一篇已經介紹到了如何成為一個微信開發(fā)者,并且簡單介紹了如何獲取和發(fā)送簡單的文本信息,這次就來介紹一下其他類型數(shù)據(jù)的接收和發(fā)送方式。

我們可以通過微信端給我們發(fā)送來的xml來判斷用戶發(fā)送消息的類型,比如文本,圖片,音頻等等,具體獲取看代碼

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //獲取POST數(shù)據(jù)

$postObj = simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);//這就是微信發(fā)來的xml

$fromUsername = $postObj->FromUserName; //獲取發(fā)送方帳號(OpenID)

$toUsername = $postObj->ToUserName; //獲取接收方賬號

$keyword = trim($postObj->Content); //獲取消息內容

$masType = $postObj->MsgType;//獲取消息類型

$time = time(); //獲取當前時間戳

可以看到,獲取到的xml中,MsgType就是用戶發(fā)送數(shù)據(jù)的類型,分別有 'text'(文本),'image'(圖片),location(位置),voice(音頻),video(視頻)等。我們就做一個簡單的根據(jù)用戶發(fā)送類型來返回相應數(shù)據(jù)的demo。

首先用switch case來區(qū)分不同的類型,這個函數(shù)不知道的自己百度,而后對應來編寫代碼

1,文字

我們就做成簡單的 “你發(fā)送的是:”格式的demo。先定義回復文本格式的xml模板,而后把剛獲取的用戶文字和我們需要的內容合并,最后通過 resultStr() 函數(shù)來格式化消息模板。函數(shù)用法自行百度

//返回消息模板

$textTpl = "%s

0";

switch ($masType) {

case 'text'://文字

$msgType = "text"; //消息類型

$contentStr = '你發(fā)送的是:'.$keyword;

$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);

echo $resultStr;

break;

這樣就會得到一個這樣的回復。

image.png

2.圖片

同樣的,我們還是做一個把用戶發(fā)來的圖片再發(fā)回給他的demo。用戶在像我們的公眾號發(fā)送圖片的時候,微信平臺會在保存圖片的同時,給這張圖片一個唯一的URL以及mediaId,這個URL在瀏覽器直接訪問就是你的那張圖片。開發(fā)者需要在服務器獲取該圖片的mediaId,而后再按照格式發(fā)送給微信方,微信就會返還對應這個mediaId的圖片給用戶。

$picUrl = $postObj->PicUrl;//圖片的鏈接

$mediaId = $postObj->MediaId;//圖片消息媒體id

$msgType = "image";

$replyXml = "%s";

echo sprintf($replyXml,$postObj->FromUserName,$postObj->ToUserName,time(),$msgType,$mediaId);

image.png

另外,如果你想發(fā)送指定的圖片給客戶,那么你需要先在開發(fā)者端把圖片發(fā)送給微信方,而后獲取這個圖片的mediaId,你可以選擇發(fā)送臨時素材(保存三天)或者永久素材,具體操作請看微信官方文檔。

3.圖文

我們自己關注的公眾號,給我們發(fā)送最多的消息應該就是圖文消息了,就是類似這樣的

image.png

大家肯定都知道,這樣的消息,在微信公眾平臺,點點敲敲的就可以發(fā)送了,但是這完全沒有開發(fā)者的代碼邏輯在內,也無法完全控制,所以我們要用代碼來實現(xiàn)這個功能。

首先我們定義一個二維數(shù)組,其中的參數(shù)名稱如代碼所示

$newsArr = array(

array(

"Title"=>"本世紀最像王昊的男人!",

"Description"=>"究竟是為何和王昊長得如此相像?",

"PicUrl"=>"http://5b0988e595225.cdn.sohucs.com/images/20171019/aab0f430638b4b1f87e48d19054b7b60.jpeg",

"Url"=>"http://www.wanghao-home.club"

),

array(

"Title"=>"艷照門祖師爺再現(xiàn)江湖!",

"Description"=>"究竟是電腦壞了還是存心所為…",

"PicUrl"=>"http://g.hiphotos.baidu.com/baike/pic/item/060828381f30e92496694c1044086e061c95f7c6.jpg",

"Url"=>"http://www.wanghao-home.club"

),

array(

"Title"=>"音樂才子竟拜師?",

"Description"=>"伯克利音樂才子竟然為何拜師王昊門下?讓我們來一探究竟!",

"PicUrl"=>"http://img01.e23.cn/2017/1003/20171003094603817.jpg",

"Url"=>"http://www.wanghao-home.club"

)

);

可以看到,這個二維數(shù)組中,一級數(shù)組一個,二級數(shù)組三個,其中的參數(shù)也都相同

Title:文章標題 Description:文章描述 PicUrl:文章圖片 Url:點擊會跳轉的鏈接

好了,數(shù)組定義完成,我們就要把數(shù)組處理成為微信可以接收的xml數(shù)據(jù)了,這里我給你提供一個方法

//判斷是否為數(shù)組類型

if(!is_array($newsArr))

{

return;

}

// 判斷數(shù)組是否為空數(shù)組

if(!$newsArr)

{

return;

}

$itemStr = "";

//定義item模板

$itemXml = "";

foreach($newsArr as $item)

{

$itemStr .= sprintf($itemXml,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']);

}

$replyXml = "%s

".count($newsArr)."

".$itemStr."";

echo sprintf($replyXml,$postObj->FromUserName,$postObj->ToUserName,time());

代碼里也沒有什么復雜的地方,就是一個循環(huán)賦值的過程,最后再格式化返回給微信方,這樣我們的用戶就會收到這樣的一個圖文消息

image.png

并且點擊對應的內容,就會跳轉到 www.wanghao-home.club

4.用戶關注

用戶在關注我們公眾號時,公眾平臺會發(fā)送給我們一個xml數(shù)據(jù),我們可以獲取其中的事件(Event),來判斷,而后回復給用戶一個歡迎語句

if($postObj->Event == 'subscribe'){

$msgType = "text"; //消息類型

$contentStr = '感謝您關注wellHome!';

$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);

echo $resultStr;

}

還有就是,個人開發(fā)者的訂閱號現(xiàn)在無法進行微信認證,所以無法自定義菜單以及一切瑣碎的功能,這點這得是讓我心碎啊。

自定義菜單也很簡單,我們只需要準備一個 json 數(shù)組,而后根據(jù)開發(fā)者的 AppID 和 AppSecret ,在公眾平臺上獲取一個Access_token,而后token通過驗證,你的數(shù)組就可以成為公眾號的菜單了。并且微信還提供了多種事件,開發(fā)者可以在代碼中,通過用戶不同事件所發(fā)送的值以及菜單中你自己定義的 Key值就可以做對應的操作了。

這篇文章暫時先介紹這三種回復內容的格式,下一篇再詳細介紹其他內容格式,希望會對您有所幫助。

總結

以上是生活随笔為你收集整理的php微信公众号开发入门,PHP微信公众号开发入门(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。