66 lines
2.4 KiB
Python
66 lines
2.4 KiB
Python
# -*- 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()
|