溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python微信公眾號(hào)之關(guān)注公眾號(hào)自動(dòng)回復(fù)

發(fā)布時(shí)間:2020-09-17 05:14:35 來源:腳本之家 閱讀:457 作者:張治杰 欄目:開發(fā)技術(shù)

我們知道一旦使用開發(fā)者模式,我們就無法使用公眾號(hào)平臺(tái)中的自動(dòng)回復(fù)功能,也就是關(guān)注自動(dòng)回復(fù)功能只有自己寫才可以。

python微信公眾號(hào)之關(guān)注公眾號(hào)自動(dòng)回復(fù)

如圖所示,我們無法直接使用此功能。

那么接著上一個(gè)博客,我們完成了關(guān)鍵詞自動(dòng)回復(fù)功能,博文地址

實(shí)現(xiàn)自動(dòng)回復(fù)的機(jī)制就是:
一旦用戶給公眾號(hào)一個(gè)觸發(fā)(有可能發(fā)了一段文字、或者圖片等等,也可能是關(guān)注了公眾號(hào)),后臺(tái)就會(huì)收到一個(gè)對(duì)應(yīng)的XML消息,我們需要做的就是解析它,并作出回應(yīng)即可。

那么如果關(guān)注了一個(gè)公眾號(hào),公眾號(hào)后臺(tái)會(huì)收到這樣的XML消息。

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
</xml>

參數(shù)如下:

python微信公眾號(hào)之關(guān)注公眾號(hào)自動(dòng)回復(fù)

以上,那就easy了,我們只要解析這個(gè)XML,獲得MsgType為event,那么就進(jìn)行判斷event是否為“subscribe”如果是,就進(jìn)行回復(fù)消息即可。

關(guān)鍵代碼如下:(具體代碼看上一個(gè)博文)

def parse_xml(web_data):
 if len(web_data) == 0:
  return None
 xmlData = ET.fromstring(web_data)
 msg_type = xmlData.find('MsgType').text
 ...#省略了一部分
 elif msg_type == 'event':#判斷為事件消息
  #print('event')
  return EventMsg(xmlData)
class EventMsg(Msg):
 def __init__(self, xmlData):
  Event.__init__(self, xmlData)
  self.Event = xmlData.find('Event').text#取Event這個(gè)參數(shù)里的內(nèi)容
if recMsg.MsgType == 'event':
     #print('yes')
     event = recMsg.Event
     if event == 'subscribe':#判斷如果是關(guān)注則進(jìn)行回復(fù)
      content = "。。。"
      replyMsg = reply.TextMsg(toUser, fromUser, content)
      return replyMsg.send()

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI