class MyWechat(object): """ my wechat platform """ def __init__(self, username, password, cookiePath='/tmp/cook_wexin.zoo'): """ init wechat object """ self.__user = username self.__pass = password self.__token = '' self.__cookies = '' self.__cookiePath = cookiePath def __password_login(self): """ login 后生成缓存文件, 以用户和密码的形式登陆 """ self.__wechat = WechatExt(username=self.__user, password=self.__pass, login=False) try: self.__wechat.login() except NeedLoginError: print "your need to retry login." with open(self.__cookiePath, 'w') as f: json.dump(self.__wechat.get_token_cookies(), f) def __token_login(self): """ 载入缓存 cookie 和 token的文件, 以token的形式登陆 """ with open(self.__cookiePath, 'r') as f: cookie = json.load(f) self.__cookies = cookie['cookies'] self.__token = cookie['token'] self.__wechat = WechatExt(username=self.__user, password=self.__pass, token=self.__token, cookies=self.__cookies, login=False) def login(self): """ 执行login() 可以有效应对可能出现的验证码问题。 """ if not os.path.exists(self.__cookiePath): self.__password_login() else: self.__token_login() try: self.__wechat.get_group_list() except NeedLoginError, e: self.__password_login()
def login_http(username, password): wechat = WechatExt(username, password) wechat.login() if not exists(cookie_dir): makedirs(cookie_dir) fn = join(cookie_dir, 'cookie_{}.html'.format(today())) with open(fn, 'w') as f: json.dump(wechat.get_token_cookies(), f, indent=4) return wechat
def login(username, password): d = r.get(username) if d: log.info('lazy login. use cookie, username={}'.format(username)) return WechatExt(username, password, login=False, **json.loads(d)) else: print username, password wechat = WechatExt(username, password, login=False) wechat.login() log.info('login to wechat server. username={}'.format(username)) r.setex(username, LOGIN_TIMEOUT, json.dumps(wechat.get_token_cookies(), indent=4)) return wechat
def __token_login(self): """ 载入缓存 cookie 和 token的文件, 以token的形式登陆 """ with open(self.__cookiePath, 'r') as f: cookie = json.load(f) self.__cookies = cookie['cookies'] self.__token = cookie['token'] self.__wechat = WechatExt(username=self.__user, password=self.__pass, token=self.__token, cookies=self.__cookies, login=False)
def __password_login(self): """ login 后生成缓存文件, 以用户和密码的形式登陆 """ self.__wechat = WechatExt(username=self.__user, password=self.__pass, login=False) try: self.__wechat.login() except NeedLoginError: print "your need to retry login." with open(self.__cookiePath, 'w') as f: json.dump(self.__wechat.get_token_cookies(), f)
def login_cookie(username, password): fn = join(cookie_dir, 'cookie_{}.html'.format(today())) if not exists(fn): raise NeedLoginError with open(fn, 'r') as f: kwargs = json.load(f) return WechatExt(username=username, password=password, login=False, **kwargs)
#!/usr/bin/python # -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('UTF-8') import serial import time import json from wechat_sdk import WechatExt wechat = WechatExt(username='******', password='******') def cal_vol(voMeasured): voMeasured = float(voMeasured) # 0 - 5V mapped to 0 - 1023 integer values # recover voltage cal_voltage = voMeasured * (5.0 / 1024.0) #将模拟值转换为电压值 return cal_voltage def cal_den(cal_voltage): cal_voltage = float(cal_voltage) # linear eqaution taken from http:#www.howmuchsnow.com/arduino/airquality/ # Chris Nafis (c) 2012 dust_density = 0.17 * cal_voltage - 0.1 #将电压值转换为粉尘密度输出单位 return float("%.6f" % (dust_density)) # 输出单位: 毫克/立方米 def cal_air_index(cal_voltage):
def auto_login(): wechat = WechatExt(login=False, username='', password='', ifencodepwd=True) print wechat r = wechat.login() print r pass
# -*- coding: utf-8 import json from wechat_sdk import WechatExt wechat = WechatExt(username='******', password='******') # 获取未分组中所有的用户成员 user_list = wechat.get_user_list() print user_list print '===================================' # 获取分组列表 group_list = wechat.get_group_list() print group_list print '===================================' # 获取图文信息列表 news_list = wechat.get_news_list(page=0, pagesize=15) print news_list print '===================================' # 获取与最新一条消息用户的对话内容 user_info_json = wechat.get_top_message() user_info = json.loads(user_info_json) print wechat.get_dialog_message(fakeid=user_info['msg_item'][0]['fakeid'])
import dht11 from sensor import pi_info from smbus import SMBus bus = SMBus(1) import json import werobot from werobot.client import Client robot = werobot.WeRoBot(token='wechatpi', enable_session=True) from wechat_sdk import WechatExt wechat = WechatExt(username='******', password='******') # 获取与最新一条消息用户的对话内容 def get_user_info(): user_info_json = wechat.get_top_message() user_info = json.loads(user_info_json) print wechat.get_dialog_message(fakeid=user_info['msg_item'][0]['fakeid']) # 主动发送消息 def send_msg(): user_info_json = wechat.get_top_message() user_info = json.loads(user_info_json) wechat.send_message(user_info['msg_item'][0]['fakeid'], "成功啦!")
#首先安装微信sdk pip install wechat-sdk 后面就简单了 #!/usr/bin/python from wechat_sdk import WechatExt import sys wechat = WechatExt(username='******', password='******') #微信公众账号登陆名和密码 #print wechat.get_user_list() wechat.send_message('id',sys.argv[1::-1]) #id 可以通过wechat.get_user_list()查询到 ,这里是设置把消息推送给谁。