m1/qcloud_data_api.py
2020-04-17 11:37:13 +08:00

66 lines
2.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: utf-8 -*-
import requests
import redis
import json
import pdb
TOKEN_REDIS = {'host': '10.10.3.10', 'port': 6379, 'db': 3}
class QcloudDataApi():
def __init__(self, appid, secret):
self.appid = appid
self.secret = secret
pool = redis.ConnectionPool(host=TOKEN_REDIS['host'], port=TOKEN_REDIS['port'], db=TOKEN_REDIS['db'],
decode_responses=True)
self.redis = redis.Redis(connection_pool=pool)
self.token = self.get_access_token()
def get_access_token(self):
token = self.redis.get(self.appid)
if not token:
token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={}&secret={" \
"}".format(self.appid, self.secret)
r = requests.get(token_url)
if r.status_code == 200:
data = r.json()
try:
self.redis.set(self.appid, data['access_token'])
self.redis.expire(self.appid, data['expires_in'])
token = data['access_token']
except Exception as e:
print("write token to redis failed ,{}!".format(e))
token = None
return token
def get_data(self):
if not self.token:
print("get token failed pls check it first!")
return False
self.get_getUserPortrait()
def get_getUserPortrait(self):
url1="https://api.weixin.qq.com/datacube/getweanalysisappiddailyretaininfo?access_token={}".format(self.token)
url2="https://api.weixin.qq.com/datacube/getweanalysisappiddailyvisittrend?access_token={}".format(self.token)
url = "https://api.weixin.qq.com/datacube/getweanalysisappiduserportrait?access_token={}".format(self.token)
post_data = {}
post_data['access_token'] = self.token
post_data['end_date'] = '20190617'
post_data['begin_date'] = '20190610'
headers = {'Content-Type': 'application/json'}
r = requests.post(url=url2, headers=headers, data=json.dumps(post_data))
if r.status_code == 200:
data = r.json()
print("{}".format(data))
def main():
appid = "wxf567b46cecf6ec58"
secret = "dea5e1a99debd567eb4532a032bdc62d"
qc = QcloudDataApi(appid, secret)
qc.get_data()
if __name__ == "__main__":
main()