python2发微信脚本
2024-10-19 22:33:03
#!/usr/bin/env python
# -*- coding: utf-8 -*- import urllib,urllib2,json
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" ) class WeChat(object):
__token_id = ''
# init attribute
def __init__(self,url):
self.__url = url.rstrip('/')
self.__corpid = '你的公众号corpid'
self.__secret = '你的密码' # Get TokenID
def authID(self):
params = {'corpid':self.__corpid, 'corpsecret':self.__secret}
data = urllib.urlencode(params) content = self.getToken(data) try:
self.__token_id = content['access_token']
# print content['access_token']
except KeyError:
raise KeyError # Establish a connection
def getToken(self,data,url_prefix='/'):
url = self.__url + url_prefix + 'gettoken?'
try:
response = urllib2.Request(url + data)
except KeyError:
raise KeyError
result = urllib2.urlopen(response)
content = json.loads(result.read())
return content # Get sendmessage url
def postData(self,data,url_prefix='/'):
url = self.__url + url_prefix + 'message/send?access_token=%s' % self.__token_id
request = urllib2.Request(url,data)
try:
result = urllib2.urlopen(request)
except urllib2.HTTPError as e:
if hasattr(e,'reason'):
print 'reason',e.reason
elif hasattr(e,'code'):
print 'code',e.code
return 0
else:
content = json.loads(result.read())
result.close()
return content # send message
def sendMessage(self,touser,message):
self.authID()
data = json.dumps({
'touser':touser,
'toparty':"2",
'msgtype':"text",
'agentid':"1",
'text':{
'content':message
},
'safe':"0"
},ensure_ascii=False) response = self.postData(data)
print response if __name__ == '__main__':
a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')
a.sendMessage(sys.argv[1],sys.argv[3])
最新文章
- sql server中批量插入与更新两种解决方案分享
- Highcharts 饼图 文字颜色设置
- 详解shape标签
- [排错] PATH_MISSING
- Laravel 实现定时任务
- Web Service学习之一:Web Service原理
- [原]Unity3D深入浅出 - 认识开发环境中的Layers面板
- 13个不容错过的Java项目
- Eclipse使用笔记
- Java深入解析读书笔记(一)
- TensorFlow实现分布式计算
- 强化学习(十)Double DQN (DDQN)
- iOS 开发 ZFUI framework控件,使布局更简单
- LeetCode题解之 Intersection of Two Arrays
- 通过进程ID获取基地址
- hadoop配置文件的参数含义说明
- Tomcat中组件的生命周期管理公共接口Lifecycle
- $.each()用法
- 【Linux笔记】在后台执行scp,实现服务器间无密码文件拷贝。
- HDU 1079 Calendar Game (博弈论-sg)
热门文章
- CVE-2020-0786(永恒之黑) GetShell
- 【reverse】逆向3 寻找地址
- html,js 获取父窗口元素
- 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引
- CesiumJS下载量超过1百万次
- Message deduplication 这里的去重与你想的可能不一样|Apache Pulsar 技术系列
- Python实现自动更改系统用户密码,生成随机密码
- 分享一个基于 ABP(.NET 5.0) + vue-element-admin 管理后台
- Go语言切片一网打尽,别和Java语法傻傻分不清楚
- Filter+Redis解决项目之间调用的幂等性