def get_user_info(self, o_id): ''' 获取用户信息 :param o_id: :return: ''' url = 'https://api.weixin.qq.com/cgi-bin/user/info?access_token=%s&openid=%s&lang=zh_CN' % ( utils.get_access_token(), o_id) resp, data = utils.spider(url) return data
def get_open_id_list(self, next_openid=None): ''' 获取1万个OpenID :param next_openid: 结束的ID :return: {"total":23000,"count":10000,"data":{"openid":["","OPENID1","OPENID2"]},"next_openid":"NEXT_OPENID"} ''' next_openid = next_openid if next_openid else '' url = 'https://api.weixin.qq.com/cgi-bin/user/get?access_token=%s&next_openid=%s' % ( utils.get_access_token(), next_openid) resp, data = utils.spider(url) return data
def del_menu(self): ''' 删除菜单 :return: 布尔值 ''' url = 'https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=%s' % utils.get_access_token( ) resp, data = utils.spider(url) if data['errmsg'] == 'ok': return True else: return False
def get_media(self, m_id, path): ''' 获取临时素材 :param m_id: 素材ID :param path: 素材存放目录 :return: 素材的本地地址 ''' url = 'https://api.weixin.qq.com/cgi-bin/media/get?access_token=%s&media_id=%s' % ( utils.get_access_token(), m_id) resp, content = utils.spider(url) new_path = '%s/%s%s' % (path, int(time.time()), mimetypes.guess_extension(resp['content-type'])) with open(new_path, 'wb') as data: data.write(content) return new_path
def create_media(self, type, path): ''' 上传临时素材 :param type: 图片(image)、语音(voice)、视频(video)和缩略图(thumb) :param path: 本地素材路径 :return: 素材ID ''' url = 'https://api.weixin.qq.com/cgi-bin/media/upload?access_token=%s&type=%s' % ( utils.get_access_token(), type) with open(path, 'rb') as data: file = data.read() resp, content = utils.spider(url, method='post', files={'file': (path, file)}) my_data = json.loads(content) return my_data['media_id']
def get_media(self, m_id, path): ''' 获取临时素材 :param m_id: 素材ID :param path: 素材存放目录 :return: 素材的本地地址 ''' url = 'https://api.weixin.qq.com/cgi-bin/media/get?access_token=%s&media_id=%s' % ( utils.get_access_token(), m_id) resp, content = utils.spider(url) new_path = '%s/%s%s' % (path, int( time.time()), mimetypes.guess_extension(resp['content-type'])) with open(new_path, 'wb') as data: data.write(content) return new_path
def create_menu(self, body): ''' 创建菜单 :param body: json :return: 布尔值 ''' url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token=%s' % utils.get_access_token( ) resp, data = utils.spider( url, method='post', data=json.dumps(body, ensure_ascii=False).encode('utf-8')) print(data) if data['errmsg'] == 'ok': return True else: return False
def batch_user_info_list(self, data): ''' 获取100条用户信息 :param data: [{ "openid": "otvxTs4dckWG7imySrJd6jSi0CWE", "lang": "zh-CN"}, {"openid": "otvxTs_JZ6SEiP0imdhpi50fuSZg", "lang": "zh-CN" }] :return:{ "user_info_list": [{},{}]} ''' data = {"user_list": data} url = 'https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=%s' % utils.get_access_token() resp, content = utils.spider(url, 'post', json.dumps(data)) return content
def batch_user_info_list(self, data): ''' 获取100条用户信息 :param data: [{ "openid": "otvxTs4dckWG7imySrJd6jSi0CWE", "lang": "zh-CN"}, {"openid": "otvxTs_JZ6SEiP0imdhpi50fuSZg", "lang": "zh-CN" }] :return:{ "user_info_list": [{},{}]} ''' data = {"user_list": data} url = 'https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=%s' % utils.get_access_token( ) resp, content = utils.spider(url, 'post', json.dumps(data)) return content