通过itchat进行给好友发送消息

通过itchat进行给好友发送消息

通过itchat模块,给指定的用户发送消息,使用的开发环境是Ubuntu16.04LTS+python2.7

首先安装itchat

sudo pip install itchat

安装itchat,下面就可以愉快的玩耍了。

微信的登录

itchat.auto_login(hotReload==False)这种方法是使用微信的二维码的进行登录,是一个较短时间的登录。如果想长时间的登录,或进行代码的调试,则可以使用hotReload==True

获取好友的名字

这里获取的好友的名字是并不是常规意义的微信名或备注,而是一长串数字加字母。
每一个好友都有一个指定的数字加字母,获取用户的数字加字母,用于信息的发送。下面的就是获取的方法,可能不唯一,这里只给出一种。

name = itchat.search_friends(name=u'小明')
XiaoMing = name[0]["UserName"]

itchat.search_friends(name=u'小明'),返回的是关于备注为小明的好友的所有信息。返回的是一个列表,如下所示。

[<User: {u'UserName': u'@1df3e0308dfa8147a5f0b70dc30fed9332e1085048f151645003c30d49b3e3c6', u'City': u'\u6b66\u6c49', u'DisplayName': u'', u'UniFriend': 0, 'MemberList': <ContactList: []>, u'PYQuanPin': u'spanclassemojiemoji1f343spanspanclassemojiemoji1f343span', u'RemarkPYInitial': u'HMG', u'Uin': 0, u'AppAccountFlag': 0, u'VerifyFlag': 0, u'Province': u'\u6e56\u5317', u'KeyWord': u'', u'RemarkName': u'\u4f55\u7f8e\u5149', u'PYInitial': u'SPANCLASSEMOJIEMOJI1F343SPANSPANCLASSEMOJIEMOJI1F343SPAN', u'ChatRoomId': 0, u'IsOwner': 0, u'HideInputBarFlag': 0, u'EncryChatRoomId': u'', u'AttrStatus': 102437, u'SnsFlag': 1, u'MemberCount': 0, u'OwnerUin': 0, u'Alias': u'', u'Signature': u'', u'ContactFlag': 3, u'NickName': u'\U0001f343\U0001f343', u'RemarkPYQuanPin': u'hemeiguang', u'HeadImgUrl': u'/cgi-bin/mmwebwx-bin/webwxgeticon?seq=662910109&username=@1df3e0308dfa8147a5f0b70dc30fed9332e1085048f151645003c30d49b3e3c6&skey=@crypt_c13a459d_07c88b693e19ceaa204c26431b1b8a80', u'Sex': 1, u'StarFriend': 0, u'Statues': 0}>, <User: {u'UserName': u'@3b107869eb1fe74f659c891654ddbbdf47067ccae5005f6883c67490a99a0673', u'City': u'\u8346\u5dde', u'DisplayName': u'', u'UniFriend': 0, 'MemberList': <ContactList: []>, u'PYQuanPin': u'hemeiguang', u'RemarkPYInitial': u'HMG', u'Uin': 0, u'AppAccountFlag': 0, u'VerifyFlag': 0, u'Province': u'\u6e56\u5317', u'KeyWord': u'', u'RemarkName': u'\u4f55\u7f8e\u5149', u'PYInitial': u'HMG', u'ChatRoomId': 0, u'IsOwner': 0, u'HideInputBarFlag': 0, u'EncryChatRoomId': u'', u'AttrStatus': 102433, u'SnsFlag': 17, u'MemberCount': 0, u'OwnerUin': 0, u'Alias': u'', u'Signature': u'', u'ContactFlag': 3,u'NickName': u'\u4f55\u7f8e\u5149', u'RemarkPYQuanPin': u'hemeiguang', u'HeadImgUrl': u'/cgi-bin/mmwebwx-bin/webwxgeticon?seq=662866679&username=@3b107869eb1fe74f659c891654ddbbdf47067ccae5005f6883c67490a99a0673&skey=@crypt_c13a459d_07c88b693e19ceaa204c26431b1b8a80', u'Sex': 1, u'StarFriend': 0, u'Statues': 0}>]

XiaoMing = name[0]["UserName"],也就获取那一串的数字加字母。

给好友发送消息

给好友发送消息使用itchat.send()

message_concent = 'Hey,dude'
itchat.send(message_concent,XiaoMing)

这样就可以给小明发送消息了。

下面附上整体的代码。

#!/usr/bin/python2.7
#coding=utf-8
import itchat 
import random

itchat.auto_login(hotReload=True)

friends_list = itchat.get_friends(update=True)
name = itchat.search_friends(name=u'小明')
XiaoMing = name[0]["UserName"]

message_list = [u'Hey,dude',u'Are you ok?',u'Bye~']
message_concent = random.sample(message_list,1)[0]
itchat.send(message_concent,XiaoMing)
可以使用微信官方提供的接口实现给指定微信好友发送消息,具体步骤如下: 1. 首先,需要在微信公众平台上申请开发者账号,并创建一个公众号。 2. 在公众号后台,开启开发者模式,并获取相应的 AppID 和 AppSecret。 3. 通过微信官方提供的 API,获取 access_token,用于发送消息和其他操作。 4. 调用微信官方提供的接口,向指定好友发送消息。 以下是一个简单的 Python 示例代码: ```python import requests # 获取 access_token def get_access_token(app_id, app_secret): url = f"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={app_id}&secret={app_secret}" response = requests.get(url) access_token = response.json().get("access_token") return access_token # 发送消息 def send_message(access_token, to_user, content): url = f"https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={access_token}" data = { "touser": to_user, "msgtype": "text", "text": { "content": content } } response = requests.post(url, json=data) result = response.json() if result.get("errcode") == 0: print("消息发送成功!") else: print("消息发送失败!") if __name__ == "__main__": # 替换成自己的 AppID 和 AppSecret app_id = "your_app_id" app_secret = "your_app_secret" # 替换成自己的 access_token access_token = get_access_token(app_id, app_secret) # 替换成自己的好友 openid 和消息内容 to_user = "your_friend_openid" content = "Hello, World!" # 发送消息 send_message(access_token, to_user, content) ``` 需要注意的是,由于微信官方对接口的访问频率有限制,建议在发送消息之前,先检查当前 access_token 是否有效,如果无效,则重新获取。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值