#!/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])

  

最新文章

  1. sql server中批量插入与更新两种解决方案分享
  2. Highcharts 饼图 文字颜色设置
  3. 详解shape标签
  4. [排错] PATH_MISSING
  5. Laravel 实现定时任务
  6. Web Service学习之一:Web Service原理
  7. [原]Unity3D深入浅出 - 认识开发环境中的Layers面板
  8. 13个不容错过的Java项目
  9. Eclipse使用笔记
  10. Java深入解析读书笔记(一)
  11. TensorFlow实现分布式计算
  12. 强化学习(十)Double DQN (DDQN)
  13. iOS 开发 ZFUI framework控件,使布局更简单
  14. LeetCode题解之 Intersection of Two Arrays
  15. 通过进程ID获取基地址
  16. hadoop配置文件的参数含义说明
  17. Tomcat中组件的生命周期管理公共接口Lifecycle
  18. $.each()用法
  19. 【Linux笔记】在后台执行scp,实现服务器间无密码文件拷贝。
  20. HDU 1079 Calendar Game (博弈论-sg)

热门文章

  1. CVE-2020-0786(永恒之黑) GetShell
  2. 【reverse】逆向3 寻找地址
  3. html,js 获取父窗口元素
  4. 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引
  5. CesiumJS下载量超过1百万次
  6. Message deduplication 这里的去重与你想的可能不一样|Apache Pulsar 技术系列
  7. Python实现自动更改系统用户密码,生成随机密码
  8. 分享一个基于 ABP(.NET 5.0) + vue-element-admin 管理后台
  9. Go语言切片一网打尽,别和Java语法傻傻分不清楚
  10. Filter+Redis解决项目之间调用的幂等性