【Python】微信发送信息

本文介绍了如何利用Python编程语言来发送微信消息。通过特定的执行方式,可以实现在自动化脚本或应用中集成微信通知的功能。
部署运行你感兴趣的模型镜像

Python微信发送信息

cat /opt/shell/weixin.py
#!/usr/bin/python
# -*- coding:utf-8 -*-

import sys
import urllib2
import time
import json
import requests
reload(sys)
sys.setdefaultencoding('utf-8')


touser = sys.argv[1]
title = sys.argv[2]
content = sys.argv[3]

class Token(object):
    def __init__(self,corpid,corpsecret):
        self.baseurl = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}'.format(corpid,corpsecret)
        self.expire_time = sys.maxint
        
    def get_token(self):
        if self.expire_time > time.time():
            request = urllib2.Request(self.baseurl)
            response = urllib2.urlopen(request)
            ret = response.read().strip()
            ret = json.loads(ret)
            print(ret)
            if ret['errcode'] == 0:
                pass
            else:
                print >> ret['errmsg'], sys.stderr
                sys.exit(1)
            self.expire_time = time.time() + ret['expires_in']
            self.access_token = ret['access_token']
        return self.access_token

def send_msg(touser,title,content):
    corpid = 'xxxxxxxxx'
    corpsecret = 'm1GxxxZibsT7_Mg7-DJg2xxxcAZpA'
    qs_token = Token(corpid=corpid, corpsecret=corpsecret).get_token()
    url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={0}'.format(qs_token)
    payload = {
        "touser": touser,
        "msgtype":"text",
        "agentid": 1000002,
        "text":{
            "content":"{0}\n\n{1}".format(title,content)
        },
        "safe":0
    }
    res = requests.post(url,data=json.dumps(payload,ensure_ascii=False))
    print res.json()
    
if __name__ == '__main__':
    send_msg(touser,title,content)

执行方式:

/opt/python/bin/python2.7  /opt/shell/weixin.py 'duanpenghui|chengyongli|zhutong|zhouzhihua' '图库访问异常' "$LOG_TIME 172.17.81.200:5000  线上访问图库无数据"

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 使用Python实现向微信送消息 #### 一、使用`itchat`库给个人或群聊送消息 对于普通微信用户而言,可以借助第三方库 `itchat` 实现自动化操作。该库允许开发者登录网页版微信账号,并提供了一系列接口来处理聊天记录以及送不同类型的信息。 安装依赖: ```bash pip install itchat ``` 下面是一段简单的例子展示怎样利用此库向指定联系人或者加入的群里广播信息[^1]: ```python import itchat # 自动登陆 itchat.auto_login(hotReload=True) # 获取好友列表 friends = itchat.get_friends(update=True)[0:] for friend in friends: userName = friend['UserName'] nickName = friend['NickName'] # 向每个好友送问候语句 message = f'你好, {nickName}, 这里有一条来自机器人的温馨提醒!' itchat.send_msg(message, toUserName=userName) # 查找特定名称的群组并送消息到群里 rooms = itchat.search_chatrooms(name='目标群名') if rooms is not None and len(rooms)>0 : room_name = rooms[0]['UserName'] msg = '这是测试消息' itchat.send(msg,toUserName=room_name) else: print('未找到对应群') # 登出 itchat.logout() ``` 需要注意的是,在实际应用过程中应当遵循官方规定,避免频繁调用API造成封号风险;同时也要考虑到隐私保护等问题。 #### 二、针对企业级用户的方案——通过企业微信API送消息 如果是在工作场景下,则推荐采用更为正式可靠的方式即集成企业微信服务端SDK来进行开发。这种方式不仅安全性更高而且功能也更加全面稳定[^2]。 首先得注册成为企业成员获取相应的CorpID等参数,接着按照文档指引完成OAuth认证流程获得AccessToken之后便能轻松调用各种RESTful风格的服务接口了。具体步骤如下所示: - 访问 [企业微信开放平台](https://open.work.weixin.qq.com/) 注册账号; - 创建自定义应用拿到AgentId; - 根据官方指南编写相应逻辑代码片段; 这里给出一段简化版示范程序用于说明如何推送文本形式的通知至指定部门内的所有员工收件箱内: ```python from weixin import WeChatClient client = WeChatClient("corpid", "secret") agent_id = 1000002 message_type = "text" content = {"content": "这是一则重要公告"} party_ids = ["1"] # 部门id集合 response = client.message.send( agent_id, message_type=message_type, content=content, party_ids=party_ids ) print(response.json()) ``` 上述方法适用于大多数情况下的需求满足,但对于更复杂的应用场景可能还需要深入研究相关资料做进一步定制化调整。 #### 三、基于Windows UI Automation技术模拟真实交互行为 除了以上两种较为常见的途径之外还有一种思路就是模仿人类正常操作过程直接控制本地客户端界面元素从而达到目的。这种方法虽然绕过了网络协议层面但仍需谨慎行事以防违反条款被永久禁用账户权限[^3]。 项目地址:<https://github.com/yinkaisheng/Python-UIAutomation-for-Windows> 示例脚本展示了打开会话窗口输入文字后点击送按钮的过程: ```python from uiautomation import WindowControl, ListControl, EditControl, ButtonControl wx_window = WindowControl(searchDepth=1, Name="微信") # 定位主面板对象实例 contact_list = wx_window.ListControl(Name="会话") # 找到左侧边栏容器组件 target_contact = contact_list.TextControl(Name="文件传输助手") # 锁定接收方节点位置 target_contact.Click() # 单击选中该项触事件切换当前视图焦点过去 msg_input_area = wx_window.EditControl() # 寻找编辑框控件准备录入待传递的内容字符串 msg_input_area.SendKeys("hello world!") # 输入要送的文字 send_btn = wx_window.ButtonControl(Name="送(S)") # 最终定位提交按键执行动作完成整个流程闭环 send_btn.Click() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值