国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

Python微信公眾號(hào)開(kāi)發(fā)—小白篇(一)

cuieney / 843人閱讀

摘要:一站式解決新手開(kāi)發(fā)微信公眾號(hào)遇到的所有問(wèn)題。這一步,我們使用三個(gè)庫(kù),微信的一個(gè)非常微小的框架,一個(gè)服務(wù)器,當(dāng)然在上可以使用代替。校驗(yàn)成功后把返回給微信。我們把圖片發(fā)送給微信后臺(tái)后,會(huì)自動(dòng)生成一個(gè)我們發(fā)送這個(gè)就可以了。

本文面向想通過(guò)Python學(xué)習(xí)公眾號(hào)開(kāi)發(fā)的同學(xué)。一站式解決新手開(kāi)發(fā)微信公眾號(hào)遇到的所有問(wèn)題。

為了防止我的文章被到處轉(zhuǎn)載,貼一下我的公眾號(hào)【智能制造社區(qū)】,歡迎大家關(guān)注。

github倉(cāng)庫(kù)地址https://github.com/injetlee/Python/tree/master/wechat

本篇文章首先實(shí)現(xiàn)與公眾號(hào)的對(duì)接,實(shí)現(xiàn)簡(jiǎn)單的回復(fù)文字、圖片內(nèi)容。下一篇會(huì)對(duì)接騰訊的AI平臺(tái),實(shí)現(xiàn)對(duì)照片的人臉檢測(cè)與分析,分析年齡、性別、表情、魅力值等。

準(zhǔn)備工作

首先要注冊(cè)一個(gè)公眾號(hào),這個(gè)很簡(jiǎn)單,我們到微信公眾平臺(tái)注冊(cè)就可以了,選擇個(gè)人訂閱號(hào)就可以。但是如果可以認(rèn)證的,我建議選擇認(rèn)證訂閱號(hào),因?yàn)槲凑J(rèn)證的號(hào)很多功能權(quán)限都沒(méi)有。好了,話不多說(shuō)進(jìn)入正題。

1. 配置公眾號(hào)

打開(kāi)公眾號(hào),在 開(kāi)發(fā)->基本配置 頁(yè)面填寫(xiě)內(nèi)容。

下面說(shuō)下需要填的內(nèi)容,第一個(gè)URL要填的就是我們的服務(wù)地址,這個(gè)地址必須是外網(wǎng)地址并且是80端口。我們要本地開(kāi)發(fā)時(shí)可以用 ngrok 解決。在ngrok.com官網(wǎng)下載。解壓后就是一個(gè)exe程序。在當(dāng)前目錄下輸入. grok.exe http 80 即可啟動(dòng)。啟動(dòng)后如下圖所示,圖片中網(wǎng)址就是我們需要的

然后我們復(fù)制紅色方框里面的地址到微信的URL輸入框中,比如我的就輸入http://c9b15df5.ngrok.io/connect 后面這個(gè)connect是我自己的服務(wù)的地址。就是我們?cè)诔绦蜷_(kāi)發(fā)中自己命名的一個(gè)請(qǐng)求路徑,如果是新手的話建議按照我的來(lái)。不要改動(dòng),避免程序跑不起來(lái)。

第二個(gè)Token,自己想一個(gè)就行了,隨便填,你可以當(dāng)他為一個(gè)密碼。

第三個(gè)自己生成就可以了。

最后一個(gè)消息加解密方式選擇明文模式。配置到這里就結(jié)束了,我們先不要關(guān)閉這個(gè)頁(yè)面,等我們Python程序驗(yàn)證部分寫(xiě)好以后點(diǎn)擊頁(yè)面下面的提交就可以了。現(xiàn)在點(diǎn)會(huì)報(bào)錯(cuò)的。

2.接口驗(yàn)證部分代碼編寫(xiě)

查看官方文檔,當(dāng)我們點(diǎn)擊配置頁(yè)面的提交按鈕時(shí),微信后臺(tái)會(huì)向我們配置的地址發(fā)送signature、timestamp、nonce、echostr四個(gè)信息,我們拿到這部分信息后通過(guò)哈希加密算法計(jì)算出(timestamp,nonce,token)的哈希值與微信發(fā)送的signature對(duì)比,如果相等則說(shuō)明是微信后臺(tái)的請(qǐng)求,然后把echostr返回,就表示驗(yàn)證成功。

這一步,我們使用三個(gè)庫(kù),wechatpy-微信的Python SDK,falcon一個(gè)非常微小的Python Web框架,Waitress-一個(gè)Python WSGI服務(wù)器,當(dāng)然在Linux上可以使用gunicorn代替waitress。通過(guò)pip install wechatpy[pycrypto]和pip install falcon,pip install waitress安裝。代碼如下,只需要把配置界面的token替換到代碼里

</>復(fù)制代碼

  1. import falcon
  2. from falcon import uri
  3. from wechatpy.utils import check_signature
  4. from wechatpy.exceptions import InvalidSignatureException
  5. class Connect(object):
  6. def on_get(self, req, resp):
  7. query_string = req.query_string
  8. query_list = query_string.split("&")
  9. b = {}
  10. for i in query_list:
  11. b[i.split("=")[0]] = i.split("=")[1]
  12. try:
  13. check_signature(token="這里填寫(xiě)配置界面你輸入的token", signature=b["signature"], timestamp=b["timestamp"], nonce=b["nonce"])
  14. resp.body = (b["echostr"])
  15. except InvalidSignatureException:
  16. pass
  17. resp.status = falcon.HTTP_200
  18. app = falcon.API()
  19. connect = Connect()
  20. app.add_route("/connect", connect)

代碼寫(xiě)好以后,我們?cè)诿钚休斎?waitress-serve --port=80 connect:app在80端口啟動(dòng)我們的程序。啟動(dòng)后如下圖,代表啟動(dòng)成功,這時(shí)候我們到微信的配置頁(yè)面點(diǎn)擊提交,會(huì)彈出提交成功消息框,代表我們成功接入微信

簡(jiǎn)單說(shuō)明以下上面代碼,on_get函數(shù)接收微信發(fā)來(lái)的get請(qǐng)求,并且通過(guò)query_string拿到微信發(fā)送的參數(shù),之后通過(guò)wechatpy的check_signature函數(shù)來(lái)校驗(yàn)。校驗(yàn)成功后把echostr返回給微信。

3. 發(fā)送文本信息給用戶

接入成功后,就可以回復(fù)用戶的信息了。我們?cè)黾右粋€(gè)函數(shù)處理用戶發(fā)送的消息,整體代碼如下:

</>復(fù)制代碼

  1. import falcon
  2. from wechatpy.utils import check_signature
  3. from wechatpy.exceptions import InvalidSignatureException
  4. from wechatpy import parse_message
  5. from wechatpy.replies import TextReply, ImageReply
  6. class Connect(object):
  7. def on_get(self, req, resp):
  8. query_string = req.query_string
  9. query_list = query_string.split("&")
  10. b = {}
  11. for i in query_list:
  12. b[i.split("=")[0]] = i.split("=")[1]
  13. try:
  14. check_signature(token="xxxxx", signature=b["signature"], timestamp=b["timestamp"], nonce=b["nonce"])
  15. resp.body = (b["echostr"])
  16. except InvalidSignatureException:
  17. pass
  18. resp.status = falcon.HTTP_200
  19. def on_post(self, req, resp):
  20. xml = req.stream.read()
  21. msg = parse_message(xml)
  22. if msg.type == "text":
  23. reply = TextReply(content=msg.content, message=msg)
  24. xml = reply.render()
  25. resp.body = (xml)
  26. resp.status = falcon.HTTP_200
  27. app = falcon.API()
  28. connect = Connect()
  29. app.add_route("/connect", connect)

我們導(dǎo)出了parse_message,TextReply,ImageReply函數(shù)。當(dāng)拿到用戶消息時(shí),判斷是文本消息,就原樣返回給用戶。現(xiàn)在我們啟動(dòng)腳本后,向公眾號(hào)發(fā)送文本消息就會(huì)收到自動(dòng)回復(fù)了。

4. 發(fā)送圖片信息給用戶

我們簡(jiǎn)單修改下on_post函數(shù),使其不僅能處理文本,也能處理圖片信息。完整代碼如下:

</>復(fù)制代碼

  1. import falcon
  2. from wechatpy.utils import check_signature
  3. from wechatpy.exceptions import InvalidSignatureException
  4. from wechatpy import parse_message
  5. from wechatpy.replies import TextReply, ImageReply
  6. class Connect(object):
  7. def on_get(self, req, resp):
  8. query_string = req.query_string
  9. query_list = query_string.split("&")
  10. b = {}
  11. for i in query_list:
  12. b[i.split("=")[0]] = i.split("=")[1]
  13. try:
  14. check_signature(token="xxxxxxx", signature=b["signature"], timestamp=b["timestamp"], nonce=b["nonce"])
  15. resp.body = (b["echostr"])
  16. except InvalidSignatureException:
  17. pass
  18. resp.status = falcon.HTTP_200
  19. def on_post(self, req, resp):
  20. xml = req.stream.read()
  21. msg = parse_message(xml)
  22. if msg.type == "text":
  23. reply = TextReply(content=msg.content, message=msg)
  24. xml = reply.render()
  25. resp.body = (xml)
  26. resp.status = falcon.HTTP_200
  27. elif msg.type == "image":
  28. reply = ImageReply(media_id=msg.media_id, message=msg)
  29. xml = reply.render()
  30. resp.body = (xml)
  31. resp.status = falcon.HTTP_200
  32. app = falcon.API()
  33. connect = Connect()
  34. app.add_route("/connect", connect)

我們?cè)诖a中加入了圖片處理邏輯,如果是圖片類(lèi)型的消息,則把圖片返回給用戶。我們把圖片發(fā)送給微信后臺(tái)后,會(huì)自動(dòng)生成一個(gè)media_id,我們發(fā)送這個(gè)media_id就可以了。

效果圖

總結(jié)

以上就是第一部分的內(nèi)容,我們首先做了接口認(rèn)證,之后通過(guò)一個(gè)on_post函數(shù)處理了用戶發(fā)送的文本和圖片信息,不過(guò)目前就是原樣返回。

下一篇我們接入騰訊AI平臺(tái),對(duì)照片進(jìn)行人臉?lè)治鰴z測(cè)之后再返回給用戶,不要走開(kāi)哦。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/41851.html

相關(guān)文章

  • 什么是 Python 編程語(yǔ)言?

    摘要:由設(shè)計(jì),作為編程語(yǔ)言的繼承者,于年首次發(fā)布。表達(dá)式表達(dá)式是編程語(yǔ)言中的語(yǔ)法實(shí)體,可以對(duì)其進(jìn)行評(píng)估以確定其值。它是編程語(yǔ)言解釋和計(jì)算以產(chǎn)生值的常量變量函數(shù)和運(yùn)算符的組合。它在年年年和年被評(píng)為年度編程語(yǔ)言,是唯一四次獲得該獎(jiǎng)項(xiàng)的語(yǔ)言。 ...

    1treeS 評(píng)論0 收藏0
  • python實(shí)現(xiàn)微信第三方網(wǎng)站掃碼登錄(Django)

    摘要:寫(xiě)在前面本周剛在項(xiàng)目中實(shí)現(xiàn)了微信第三方網(wǎng)站掃碼登錄。準(zhǔn)備與注意事項(xiàng)微信公眾平臺(tái)跟微信開(kāi)放平臺(tái)是兩個(gè)不同的平臺(tái),別搞混了。參數(shù)在微信開(kāi)放平臺(tái)中查看。 寫(xiě)在前面 本周剛在項(xiàng)目中實(shí)現(xiàn)了微信第三方網(wǎng)站掃碼登錄。因?yàn)榈谝淮螌?xiě)相關(guān)項(xiàng)目,所以遇到了很多坑。所以寫(xiě)這篇文章是希望像我之前那樣的小白也能從容的開(kāi)發(fā),不要浪費(fèi)無(wú)謂的時(shí)間,這篇文章盡量寫(xiě)的詳細(xì)簡(jiǎn)單。準(zhǔn)備與注意事項(xiàng) 微信公眾平臺(tái)跟微信開(kāi)放平臺(tái)是...

    lemanli 評(píng)論0 收藏0
  • 微信小程序爬蟲(chóng)】表情包小程序圖文視頻教學(xué),從零寫(xiě)起,保姆教程!!!

    摘要:文章目錄前言爬取分析視頻教學(xué)成果展示福利入門(mén)到就業(yè)學(xué)習(xí)路線規(guī)劃小白快速入門(mén)爬蟲(chóng)路線前言皮皮蝦一個(gè)沙雕而又有趣的憨憨少年,和大多數(shù)小伙伴們一樣喜歡聽(tīng)歌游戲,當(dāng)然除此之外還有寫(xiě)作的興趣,,日子還很長(zhǎng),讓我們一起加油努力叭話 ...

    coordinate35 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<