Python 如何操作微信


 

 

1、給文件傳輸助手發一條消息

import itchat

itchat.auto_login(enableCmdQR=True) # 這里需要你人工手機掃碼登錄
itchat.send('Hello, 文件助手', toUserName='filehelper')

2、回復發給自己的文本消息

import itchat

@itchat.msg_register(itchat.content.TEXT)
def text_replay(msg):
return msg.text # 人家說啥你回復啥。。。

itchat.auto_login()
itchat.run()

3、群發助手

import itchat 
import time

itchat.auto_login(hotReload=True, enableCmdQR=True)

SINCERE_WISH = u"祝%s感恩節快樂!"

riend_list = itchat.get_friends(update=True) # 第一個是自己
friend_list = friend_list[1:]
for friend in friend_list:
# 如果是演示,把send改成print就行
# itchat.send(SINCERE_WISH % (friend['DisplayName'] or friend['NickName']), friend['UserName'])
print(SINCERE_WISH % (friend['DisplayName'] or friend['NickName']))
time.sleep(3)

4、好友刪除檢測

"""有時候我們會想知道某個好友有沒有刪除自己或者把自己拉入黑名單。

這一操作使用itchat也會變的非常簡單。

原理的話,在於將好友拉入群聊時,非好友和黑名單好友不會被拉入群聊。

所以群聊的返回值中就有了好友與你關系的數據。

另外,群聊在第一次產生普通消息時才會被除創建者以外的人發現的(系統消息不算普通消息)。

這樣,就可以隱蔽的完成好友檢測
"""

import itchat

CHATROOM_NAME = 'friend'
CHATROOM = None
HELP_MSG = u'''\
好友狀態監測
* 發送名片將會返回好友狀態
* 請確有名為%s的未使用的群聊
* 並將該群聊保存到通訊錄
* 調用頻率存在一定限制\
''' % CHATROOM_NAME
CHATROOM_MSG = u'''\
無法自動創建群聊,請手動創建
確保群聊名稱為%s
請不要使用已經使用過的群聊
創建后請將群聊保存到通訊錄\
''' % CHATROOM_NAME


def get_chatroom():
global CHATROOM
if CHATROOM is None:
itchat.get_chatrooms(update=True)
chatrooms = itchat.search_chatrooms(CHATROOM_NAME)
if chatrooms:
return chatrooms[0]
else:
r = itchat.create_chatroom(itchat.get_friends()[1:4], topic=CHATROOM_NAME)
if r['BaseResponse']['ErrMsg'] == '':
CHATROOM = {'UserName': r['ChatRoomName']}
return CHATROOM
else:
return CHATROOM
def get_friend_status(friend):
ownAccount = itchat.get_friends(update=True)[0]
if friend['UserName'] == ownAccount['UserName']:
return u'檢測到本人賬號。'
elif itchat.search_friends(userName=friend['UserName']) is None:
return u'該用戶不在你的好友列表中。'
else:
chatroom = CHATROOM or get_chatroom()
if chatroom is None: return CHATROOM_MSG
r = itchat.add_member_into_chatroom(chatroom['UserName'], [friend])
if r['BaseResponse']['ErrMsg'] == '':
status = r['MemberList'][0]['MemberStatus']
itchat.delete_member_from_chatroom(chatroom['UserName'], [friend])
return { 3: u'該好友已經將你加入黑名單。',
4: u'該好友已經將你刪除。', }.get(status,
u'該好友仍舊與你是好友關系。')
else:
return u'無法獲取好友狀態,預計已經達到接口調用限制。'

@itchat.msg_register(itchat.content.CARD)
def get_friend(msg):
if msg['ToUserName'] != 'filehelper': return
friendStatus = get_friend_status(msg['RecommendInfo'])
itchat.send(friendStatus, 'filehelper')

itchat.auto_login(True)
itchat.send(HELP_MSG, 'filehelper')
itchat.run()

5、微信播放音樂

"""
這是一個通過微信控制電腦播放音樂的小項目,那么主要就是三個功能: 輸入“幫助”,顯示幫助 輸入“關閉”,關閉音樂播放 * 輸入具體歌名,進入歌曲的選擇
"""
import os

import itchat
from NetEaseMusicApi import interact_select_song

HELP_MSG = """\
歡迎使用微信網易雲音樂
幫助:顯示幫助
關閉:關閉歌曲
歌名:按照引導播放音樂
"""

with open('stop.mp3', 'w') as f:
pass


def close_music():
os.startfile('stop.mp3')


@itchat.msg_register(itchat.content.TEXT)
def music_player(msg):
if msg['ToUserName'] != 'filehelper':
return
if msg['Text'] == u'關閉':
close_music()
itchat.send(u'音樂已關閉', 'filehelper')
if msg['Text'] == u'幫助':
itchat.send(HELP_MSG, 'filehelper')
else:
itchat.send(interact_select_song(msg['Text']), 'filehelper')


itchat.auto_login(True)
itchat.send(HELP_MSG, 'filehelper')
itchat.run()

6、實現微信消息的獲取

import itchat
"""
圖片對應itchat.content.PICTURE
語音對應itchat.content.RECORDING
名片對應itchat.content.CARD

TEXT = 'Text'
MAP = 'Map'
CARD = 'Card'
NOTE = 'Note'
SHARING = 'Sharing'
PICTURE = 'Picture'
RECORDING = VOICE = 'Recording'
ATTACHMENT = 'Attachment'
VIDEO = 'Video'
FRIENDS = 'Friends'
SYSTEM = 'System'
"""
@itchat.msg_register(itchat.content.TEXT)
def print_content(msg):
print(msg['Text'])
itchat.auto_login()
itchat.run()

7、實現微信消息的發送

import itchat
"""例子將會將文本消息原封不動的返回"""
@itchat.msg_register(itchat.content.TEXT)
def print_content(msg):
return msg['Text']

itchat.auto_login()
itchat.run()

8、最簡單的與圖靈機器人的交互

import requests
import itchat

KEY = '8edce3ce905adbb965e6b35c3834d'


def get_response(msg):
# 這里我們就像在“3. 實現最簡單的與圖靈機器人的交互”中做的一樣
# 構造了要發送給服務器的數據
apiUrl = 'http://www.tuling123.com/openapi/api'
data = {
'key': KEY,
'info': msg,
'userid': 'wechat-robot',
}
try:
r = requests.post(apiUrl, data=data).json()
# 字典的get方法在字典沒有'text'值的時候會返回None而不會拋出異常
return r.get('text')
# 為了防止服務器沒有正常響應導致程序異常退出,這里用try-except捕獲了異常
# 如果服務器沒能正常交互(返回非json或無法連接),那么就會進入下面的return
except:
# 將會返回一個None
return


# 這里是我們在“1. 實現微信消息的獲取”中已經用到過的同樣的注冊方法
@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):
# 為了保證在圖靈Key出現問題的時候仍舊可以回復,這里設置一個默認回復
defaultReply = 'I received: ' + msg['Text']
# 如果圖靈Key出現問題,那么reply將會是None
reply = get_response(msg['Text'])
# a or b的意思是,如果a有內容,那么返回a,否則返回b
# 有內容一般就是指非空或者非None,你可以用`if a: print('True')`來測試
return reply or defaultReply


# 為了讓實驗過程更加方便(修改程序不用多次掃碼),我們使用熱啟動
itchat.auto_login(hotReload=True)
itchat.run()


免責聲明!

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



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