微信公眾號發送消息給用戶 php
- 2019 年 10 月 3 日
- 筆記
1.微信公眾號 這裡得話 一開始先去看了 微信公眾號的介面 發現網頁授權需要時認證的服務號,一開始想的是那去申請一個認證的服務號豈不是很費事,然後網上搜了搜,發現了還有微信公眾號個人測試號這個東西,所有的介面都可以使用(據說是這樣),然後就開始去學習使用微信公眾號個人測試號的使用;
個人測試號網址:
http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index
2.個人測試號也是一通網上去找教程,試了很多個百度搜索的結果,發現都不完全好用。因為我這個開發的網站是在本地開發的,倒是在剛才搜索的教程中找到了 「內網穿透」這個神器,就是可以把你本地的網址(一般是127.0.0.1)隱射到外網的一個網址上,這樣別人就可以通過這個外網的網址(什麼是外網,就是不是本機電腦才可以訪問的網址,所有人只要知道網址就可以訪問的網路就是外網)放問到你的內網(內網就是只有自己本機的電腦可以訪問的網路)。
https://blog.csdn.net/m0_37987521/article/details/79525515 這個網址就是剛才成功內網穿透的教程。
看到這裡,大家可能會有疑問為啥需要這個內網穿透的東西,因為個人微信公眾號需要綁定一個網址,這個網址必須是外網,而且埠必須是80埠,才可以成功。
到這裡就解決了內網穿透這個問題,接下來的是如何把我的外網網址綁定到微信的個人測試公眾號上。之前也說了,在百度搜索引擎搜了很多,發現都不太好用,於是去Google搜索去試一下,你還別說,試了一個Google搜索,還真找到了好用的部落格,
https://www.kancloud.cn/zhangyouwu/zhang_you_wu_weixinjiekou/538920
照著部落格的指示來,就成功綁定好了微信個人測試公眾號與我的外網網址。所以這裡大家可以看出來,Google的好處,百度搜不到建議Google試一下,說不定就會有意外之喜。
3.綁定好了以後就是想去在微信公眾號對話框回復消息,然後我這裡後台可以接收到消息,然後對這條消息進行回復,就是公眾號自動回復的功能,
https://www.kancloud.cn/zhangyouwu/zhang_you_wu_weixinjiekou/538922
這裡照著教程(剛才的網址)中走就行,有一點大家要注意的是,教程中的程式碼中有中文的內容在程式碼中,這個可能會讓我們的程式碼不好用,我是把教程中的程式碼複製到sublime 上保存為php文件才好用,一開始複製到notepad++上程式碼無法正常運行,公眾號後台對話框老是回復 「該公眾號提供的服務出現故障,請稍後再試」,檢查程式碼發現是教程中的中文在notepad++上亂碼了,這裡想和大家說的是看到中文一定要留個心眼,盡量不要出現中文,還有就是文件路徑盡量不要用中文路徑。
4.由於甲方要求有用戶登錄需要通過微信公眾號獲取用戶的個人資訊這個操作,所以還需要實現微信網頁授權,如下午所示,網址是:
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842
照著上面的教程去拼接出這樣一個鏈接:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 若提示「該鏈接無法訪問」,請檢查參數是否填寫錯誤,是否擁有scope參數對應的授權作用域許可權。
上述是微信官方文檔的示例,接下來的鏈接是我拼出來的:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx24085f99556b3abe&redirect_uri=http%3A//education123.natapp1.cc/&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
可以看到我修改了appid redirect_url scope 這三個參數,appid就是你申請微信公眾個人測試號的appid,就是下圖的方框框起來的appid
redirect_url就是下面箭頭指向的鏈接,(這裡我就不打馬賽克了,給大家一個更直觀的清楚的感覺,而且必須是我開啟了我的本地伺服器才可以訪問的,所以問題不大),redirect_url中是經過urlencode處理過的鏈接,不是原始的鏈接,這裡我使用python2 兩行程式碼搞定
from urllib import quote
print(quote(‘http://education123.natapp1.cc/‘))
把上述拼接好的鏈接,直接複製傳到微信的對話框,在微信中訪問,會請求獲取你的資訊,這裡就完成了微信網頁授權這個功能。
5.上述完成以後,就是按照官方文檔去獲取code,但是我返回的網址中沒有任何的code資訊,
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx24085f99556b3abe&redirect_uri=http%3A//education123.natapp1.cc/&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
這個網址訪問以後,複製出來的鏈接是http.//education123.natapp1.cc/
沒有任何的code資訊,我們需要這個code資訊去獲取用戶的資訊(昵稱,性別,openid)等,於是又去google搜了一下,果然還是又找到了。
https://my.oschina.net/u/2487410/blog/603844
這個部落格,原來微信再返回code的時候,做了處理,直接複製鏈接是看不到這個code參數的。
於是我照著這個程式碼修改了一下,寫了get_back.php,注意這個get_back.php必須放到你的項目的根目錄下
修改最初的授權的url:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx24085f99556b3abe&redirect_uri=http%3A//education123.natapp1.cc/get_back.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
可以看到這個授權的url變成了get_back.php 後綴的,這個get_back.php
是這樣子的,再來把剛才的鏈接在微信的客戶端打開。
可以看到出現了一串神秘程式碼,這串程式碼就是我們需要的code.
可以看到獲取到了我的 昵稱和我的openid .
覺得文章不錯的歡迎關注我的WX公眾號:程式設計師喬戈里
我是百度後台開發工程師,哈工大電腦本碩,專註分享技術乾貨/編程資源/求職面試/成長感悟等,關注送5000G編程資源和自己整理的一份幫助不少人拿下java的offer的面經附答案,免費下載CSDN資源。