阅读 115

腾讯云V2接口API

腾讯云V2接口API

#!/usr/bin/env python

# -*- coding: utf-8 -*-

'''

message: 腾讯v2接口API

'''

import hashlib, hmac, time, base64, random

from urllib import parse

import requests



class TelnetAPIV2(object):


    def __init__(self, server, region="ap-shanghai"):

        # 密钥参数

        self.secret_id = 'xxxxxx'

        self.secret_key = 'xxxxxxx'

        self.server = server

        self.region = region


    def get(self, action, **params):

        # ************* 步骤 1:对参数排序,步骤 2. 拼接请求字符串, *************

        timestamp = int(time.time())

        config = {

            "Action": action,

            "Nonce": random.randint(10000, 99999),

            "Region": self.region,

            "SecretId": self.secret_id,

            "SignatureMethod": "HmacSHA256",

            "Timestamp": timestamp

        }

        params = dict(config, **params)

        new_params = "&".join(["%s=%s" % (i[0], i[1]) for i in sorted(params.items(), key=lambda x: x[0])])

        # ************* 步骤3. 拼接签名原文字符串  *************

        srcStr = 'GET' + self.server + '.api.qcloud.com/v2/index.php?' + new_params

        # ************* 步骤4. 生成签名串  *************

        signkey = hmac.new(self.secret_key.encode('utf8'), srcStr.encode('utf8'), hashlib.sha256).digest()

        signStr = base64.b64encode(signkey).decode('utf8')

        # ************* 步骤5. 生成get params  *************

        params_url = parse.urlencode(dict({'Signature': signStr}, **params))

        # ************* 步骤6. 访问  *************

        response = requests.get(url='https://%s.api.qcloud.com/v2/index.php' % self.server, params=params_url)

        # ************* 步骤7. 返回JSON格式  *************

        return response.json()



api = TelnetAPIV2('cns')

print(api.get('DomainList'))

————————————————

版权声明:本文为CSDN博主「金钩杯儿」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/shawn210/article/details/103767460


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐