基於itchat的微信群聊小助手基礎開發(一)


前段時間由於要管理微信群,基於itchat開發了一個簡單的微信機器人

主要功能有:

  1. 圖靈機器人功能
  2. 群聊昵稱格式修改提示
  3. 消息防撤回功能
  4. 斗圖功能

 

 

要開發一個基於itchat的最基本的聊天機器人,在github上作者已經給出基本的操作,本博文只對附加的功能進行說明總結。

確保已經了解itchat的基本操作,先對功能1和功能2進行說明:

1.圖靈機器人功能

該功能也是最基礎的功能之一,itchat的基礎案例也有相關例子。

圖靈機器人簡單而言就是以一定的規則給圖靈的服務器發送數據包,圖靈的服務器會以一定的規則給你返回數據包,就可以實現對話了。

首先先要去 圖靈機器人 注冊一個key,來告訴圖靈服務器你有權和他對話

 

以下是代碼:

 1 def get_response(msg):
 2     apiUrl = 'http://www.tuling123.com/openapi/api'
 3     data = {
 4         'key'    : KEY,#這里是你申請的key
 5         'info'   : msg,
 6         'userid' : 'wechat-robot',
 7     }
 8     try:
 9         r = requests.post(apiUrl, data=data).json()
10         #return r.get('text')
11         code = r['code']
12         if code == 100000:
13             reply = r['text']
14         elif code == 200000:
15             reply = r['text'] + r['url']
16         elif code == 302000:
17             list = r['list']
18             reply = r['text']
19             for i in list:
20                 reply = reply + '  ,' + i['article'] + i['detailurl'] + '\n'
21         return reply
22     except:
23         return

 

 

2.微信群昵稱格式修改提示

首先,先寫一個判斷函數,用正則表達式匹配你想要的格式。

如果不符合此格式,則返回一條  “ @不符合格式的昵稱 請盡快按照如:16-xx-XXX的格式修改備注,謝謝合作”    

‘@%s\u2005’  中的 ‘\u2005’ 是微信@的固定格式

1 def groupNameIsOK(name,msg):
2     str=u'請盡快按照如:16-xx-XXX的格式修改備注,謝謝合作'
3     if re.search(ur"\d\d(\-|\-|)\S*(\-|\-|)\S*",name)==None:
4         msg.user.send(u'@%s\u2005%s' % (
5             msg.actualNickName, str))

 

返回一條信息肯定要有 @那個昵稱不符的吧?那接下來就要找到這個昵稱,也是用正則去匹配,然后返回他的昵稱

1 def groupPeople(msg):
2     T=re.search("\@\@(.*?)",msg['FromUserName'])
3     if T!=None:
4         return msg['ActualNickName']
5     else:
6         return None

 

最后把它們整合,第二個功能搞定

1     if groupPeople(msg)!=None:
2         msg_from=groupPeople(msg)
3         groupNameIsOK(msg_from,msg)

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM