You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.6 KiB

4 months ago
#! /usr/bin/env python
# coding=utf-8
import json
4 months ago
from datetime import datetime
4 months ago
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
4 months ago
from TtsConfig import *
4 months ago
from WxMini.RedisUtil import set_tts_token, get_tts_token
4 months ago
def getToken():
4 months ago
# 从Redis获取 TTS Token
retrieved_token = get_tts_token()
if retrieved_token:
print("使用Redis中的Token:", retrieved_token)
return retrieved_token
4 months ago
# 创建AcsClient实例
client = AcsClient(
4 months ago
ACCESS_KEY_ID, ACCESS_KEY_SECRET, "cn-shanghai"
4 months ago
)
4 months ago
4 months ago
# 创建request并设置参数
4 months ago
request = CommonRequest()
request.set_method('POST')
request.set_domain('nls-meta.cn-shanghai.aliyuncs.com')
request.set_version('2019-02-28')
request.set_action_name('CreateToken')
try:
response = client.do_action_with_exception(request)
jss = json.loads(response)
if 'Token' in jss and 'Id' in jss['Token']:
token = jss['Token']['Id']
4 months ago
expireTime = jss['Token']['ExpireTime']
# 转换为本地时间
expire_date = datetime.fromtimestamp(expireTime)
# 格式化输出
formatted_date = expire_date.strftime("%Y-%m-%d %H:%M:%S")
print("过期时间:", formatted_date)
# 计算时间差(秒数)
now = datetime.now()
time_diff = (expire_date - now).total_seconds()
print("距离过期还有(秒):", time_diff)
4 months ago
# 设置 TTS Token
set_tts_token(token)
4 months ago
return token
except Exception as e:
print(e)