tencent cloud

APIs

Cloud Virtual Machine
History
Introduction
API Category
Making API Requests
Region APIs
Instance APIs
Cloud Hosting Cluster APIs
Image APIs
Instance Launch Template APIs
Placement Group APIs
Key APIs
Security Group APIs
Network APIs
Data Types
Error Codes
Tencent Cloud Lighthouse
History
Introduction
API Category
Making API Requests
Image APIs
Firewall APIs
Key APIs
Instance APIs
CCN APIs
Snapshot APIs
Other APIs
Cloud Disk APIs
Scene APIs
Package APIs
Quota APIs
Region APIs
Data Types
Error Codes
Auto Scaling
History
Introduction
API Category
Making API Requests
Scaling Group APIs
Scaling Group Instances APIs
Launch Configuration APIs
Scheduled Action APIs
Alarm Trigger Policy APIs
Notification APIs
Lifecycle Hook APIs
Instance Refresh APIs
Other APIs
Data Types
Error Codes
Batch Compute
History
Introduction
API Category
Making API Requests
Compute Environment APIs
Configuration Viewing-related APIs
Task Template-related APIs
Job-related APIs
Data Types
Error Codes
Tencent Cloud Automation Tools
History
Introduction
API Category
Making API Requests
Remote Command APIs
Scheduled Execution APIs
Managed Instance APIs
Scenario APIs
Statistics APIs
Data Types
Error Codes
Edge Computing Machine
History
API Category
Making API Requests
Region APIs
Module APIs
Instance APIs
Image APIs
VPC APIs
Subnet APIs
Route Table APIs
CLB APIs
ENI APIs
EIP APIs
HAVIP APIs
Other API
Key APIs
Security Group APIs
Data Types
Error Codes
Tencent Kubernetes Engine
History
Introduction
API Category
Making API Requests
Elastic Cluster APIs
Resource Reserved Coupon APIs
Cluster APIs
Third-party Node APIs
Relevant APIs for Addon
Network APIs
Node APIs
Node Pool APIs
TKE Edge Cluster APIs
Cloud Native Monitoring APIs
Scaling group APIs
Super Node APIs
Other APIs
Data Types
Error Codes
TKE API 2022-05-01
Tencent Container Registry
History
Introduction
API Category
Making API Requests
Instance Management APIs
Namespace APIs
Access Control APIs
Instance Synchronization APIs
Tag Retention APIs
Trigger APIs
Helm Chart APIs
Image Repository APIs
Custom Account APIs
Data Types
Error Codes
Tencent Cloud Elastic Microservice
History
Introduction
API Category
Making API Requests
Environment APIs
ModifyIngress
Resource APIs
Application APIs
Service APIs
Application Deployment APIs
Access Policy APIs
Configuration file APIs
Log collecting APIs
Scaling Rule APIs
Application Version APIs
Other APIs
Workload APIs
Data Types
Error Codes
Serverless Cloud Function
History
Introduction
API Category
Making API Requests
Other APIs
Namespace APIs
Layer Management APIs
Async Event Management APIs
Trigger APIs
Function APIs
Function and Layer Status Description
Data Types
Error Codes
Event Bridge
History
Introduction
API Category
Making API Requests
Delivery Target APIs
Event Bus APIs
Event Rule APIs
Event Connector APIs
Data Transformer APIs
Event Storage APIs
Data Types
Error Codes
Cloud Object Storage
Introduction
Common Request Headers
Common Response Headers
Error Codes
Request Signature
Action List
Service APIs
Bucket APIs
Object APIs
Batch Operation APIs
Data Processing APIs
Job and Workflow
Content Moderation APIs
Cloud Antivirus API
Cloud File Storage
History
Introduction
API Category
Snapshot APIs
File system APIs
Lifecycle APIs
Other APIs
Data Flow APIs
Making API Requests
Permission Group APIs
Service APIs
Scaling APIs
Data Migration APIs
Data Types
Error Codes
Cloud Block Storage
History
Introduction
API Category
Making API Requests
Snapshot APIs
Cloud Disk APIs
Data Types
Error Codes
Cloud HDFS
History
Introduction
API Category
Making API Requests
Other APIs
Permission group APIs
Permission rule APIs
Mount point APIs
Lifecycle rule APIs
File system APIs
Restoration task APIs
Data Types
Error Codes
Cloud Log Service
History
Introduction
API Category
Making API Requests
Topic Management APIs
Log Set Management APIs
Index APIs
Topic Partition APIs
Machine Group APIs
Collection Configuration APIs
Log APIs
Metric APIs
Alarm Policy APIs
Data Processing APIs
Kafka Protocol Consumption APIs
Kafka Task APIs
Kafka Data Subscription APIs
COS Task APIs
SCF Delivery Task APIs
Scheduled SQL Analysis APIs
COS Data Import Task APIs
Data Types
Error Codes
TDSQL-C for MySQL
History
Introduction
API Category
Making API Requests
Instance APIs
Multi-Availability Zone APIs
Other APIs
Audit APIs
Database Proxy APIs
Backup and Recovery APIs
Parameter Management APIs
Billing APIs
serverless APIs
Resource Package APIs
Account APIs
Performance Analysis APIs
Data Types
Error Codes
TencentDB for MySQL
History
Introduction
API Category
Instance APIs
Making API Requests
Data Import APIs
Database Proxy APIs
Database Audit APIs
Security APIs
Task APIs
Backup APIs
Account APIs
Rollback APIs
Parameter APIs
Database APIs
Monitoring APIs
Log-related API
Data Types
Error Codes
TencentDB for MariaDB
History
Introduction
API Category
Making API Requests
Security Group APIs
Other APIs
Account APIs
Parameter Management APIs
Monitoring Management APIs
Instance Management APIs
Backup and Restoration APIs
Data Types
Error Codes
TencentDB for PostgreSQL
History
Introduction
API Category
Making API Requests
Instance APIs
Read-only Replica APIs
Backup and Recovery APIs
Parameter Management APIs
Security Group APIs
Performance Optimization APIs
Account APIs
Specification APIs
Network APIs
Data Types
Error Codes
TencentDB for SQL Server
History
Introduction
API Category
Making API Requests
Sales and fee related APIs
Instance Management related APIs
Operation and maintenance management related APIs
Network management related APIs
Account management related APIs
Database management related APIs
Security group management related APIs
Data security encryption related APIs
Parameter configuration related APIs
Extended Event related APIs
Log management related APIs
Read only instance management related APIs
Publish and subscribe related APIs
Backup related APIs
Data migration (cold standby migration) related APIs
Rollback related APIs
Data migration (DTS old version) related APIs
SQL Server Integration Services (SSIS) related APIs
Data Types
Error Codes
TDSQL for MySQL
History
Introduction
API Category
Security Group APIs
Other APIs
Making API Requests
TDSQL APIs
Data Types
Error Codes
Tencent Cloud Distributed Cache (Redis OSS-Compatible)
History
Introduction
API Category
Making API Requests
Instance APIs
Parameter Management APIs
Other APIs
Backup and Restoration APIs
Region APIs
Monitoring and Management APIs
Log APIs
Data Types
Error Codes
TencentDB for MongoDB
History
Introduction
API Category
Making API Requests
Instance APIs
Backup APIs
Account APIs
Other APIs
Task APIs
Introduction
Data Types
Error Codes
TencentDB for TcaplusDB
History
Introduction
API Category
Making API Requests
Table Group APIs
Other APIs
Table APIs
Cluster APIs
Data Types
Error Codes
Data Transfer Service
History
Introduction
API Category
Making API Requests
(NewDTS) Data Migration APIs
Data Sync APIs
Data Consistency Check APIs
(NewDTS) Data Subscription APIs
Data Types
Error Codes
DTS API 2018-03-30
TencentDB for DBbrain
History
Introduction
Introduction
API Category
Making API Requests
Session Killing APIs
Exception Detection APIs
Other APIs
Redis related APIs
Health Report Email Sending APIs
Space Analysis APIs
Security Audit APIs
Slow Log Analysis APIs
Database Audit APIs
Data Types
Error Codes
DBbrain APIs 2019-10-16
Virtual Private Cloud
History
Introduction
API Category
Making API Requests
VPC APIs
Route Table APIs
Elastic Public IP APIs
Elastic IPv6 APIs
Highly Available Virtual IP APIs
ENI APIs
Bandwidth Package APIs
NAT Gateway APIs
Direct Connect Gateway APIs
Cloud Connect Network APIs
Network ACL APIs
Network Parameter Template APIs
Network Detection-Related APIs
Flow Log APIs
Gateway Traffic Monitor APIs
Private Link APIs
Traffic Mirroring APIs
Other APIs
Subnet APIs
VPN Gateway APIs
Security Group APIs
Snapshot Policy APIs
Error Codes
Data Types
Cloud Load Balancer
History
Introduction
API Category
Instance APIs
Listener APIs
Backend Service APIs
Target Group APIs
Redirection APIs
Other APIs
Classic CLB APIs
Load Balancing APIs
Making API Requests
Data Types
Error Codes
CLB API 2017
Direct Connect
History
Introduction
API Category
Making API Requests
Direct Connect APIs
Data Types
Error Codes
Content Delivery Network
History
Introduction
API Category
Content Management APIs
Real-time Log APIs
Service Query APIs
Data Query APIs
Making API Requests
Log Query APIs
Domain Name Management APIs
Configuration Management APIs
Obsoleted APIs
Other APIs
Data Types
Error Codes
Global Application Acceleration Platform
History
Introduction
API Category
Rule APIs
Connection Group APIs
Making API Requests
Origin Server APIs
Listener APIs
Connection APIs
Certificate APIs
Other APIs
Data Types
Error Codes
Tencent Cloud Firewall
History
Introduction
API Category
Making API Requests
Intrusion Defense APIs
Access Control APIs
Other APIs
Enterprise Security Group APIs
Firewall Status APIs
Data Types
Error Codes
Tencent Cloud EdgeOne
History
Introduction
API Category
Making API Requests
Site APIs
Acceleration Domain Management APIs
Site Acceleration Configuration APIs
Edge Function APIs
Alias Domain APIs
Security Configuration APIs
Layer 4 Application Proxy APIs
Content Management APIs
Data Analysis APIs
Log Service APIs
Billing APIs
Certificate APIs
Origin Protection APIs
Load Balancing APIs
Diagnostic Tool APIs
Custom Response Page APIs
API Security APIs
DNS Record APIs
Content Identifier APIs
Legacy APIs
Ownership APIs
Image and Video Processing APIs
Multi-Channel Security Gateway APIs
Version Management APIs
Data Types
Error Codes
Cloud Workload Protection Platform
History
Introduction
API Category
Asset Management APIs
Virus Scanning APIs
Abnormal Log-in APIs
Password Cracking APIs
Malicious Request APIs
High-Risk Command APIs
Local Privilege Escalation APIs
Reverse Shell APIs
Vulnerability Management APIs
New Baseline Management APIs
Baseline Management APIs
Advanced Defense APIs
Security Operation APIs
Expert Service APIs
Other APIs
Overview Statistics APIs
Settings Center APIs
Making API Requests
Intrusion Detection APIs
Data Types
Error Codes
Key Management Service
History
Introduction
API Category
Key APIs
Making API Requests
Asymmetric Key APIs
Data Types
Error Codes
Secrets Manager
History
Introduction
API Category
Making API Requests
Data Security APIs
Other APIs
Data Types
Error Codes
Captcha
History
Introduction
API Category
Making API Requests
Server APIs
Error Codes
Customer Identity and Access Management
History
Introduction
API Category
Making API Requests
User Management APIs
Data Sync APIs
Audit Management APIs
Data Types
Error Codes
Security Token Service
History
Introduction
API Category
Making API Requests
STS APIs
Data Types
Error Codes
SSL Certificates
History
Introduction
API Category
Making API Requests
Certificate APIs
Certificate Renewal (Certificate ID Unchanged) APIs
CSR APIs
Data Types
Error Codes
Private DNS
History
Introduction
API Category
Making API Requests
Private DNS APIs
Data Types
Error Codes
DNSPod
History
Introduction
API Category
Making API Requests
Line APIs
Package and Value-Added Service APIs
Batch Operation APIs
Group APIs
Record APIs
DNS Query Volume APIs
Alias APIs
Domain APIs
Data Types
Error Codes
Elastic MapReduce
History
Introduction
API Category
Cluster Resource Management APIs
Cluster Services APIs
User Management APIs
Data Inquiry APIs
Scaling APIs
Configuration APIs
Other APIs
Serverless HBase APIs
YARN Resource Scheduling APIs
Making API Requests
Data Types
Error Codes
Elasticsearch Service
History
Introduction
API Category
Instance APIs
Making API Requests
Data Types
Error Codes
Data Lake Compute
History
Introduction
API Category
Making API Requests
Data Table APIs
Task APIs
Metadata APIs
Service Configuration APIs
Permission Management APIs
Database APIs
Data Source Connection APIs
Data Optimization APIs
Data Engine APIs
Resource Group for the Standard Engine APIs
Data Types
Error Codes
Face Recognition
History
Introduction
API Category
Making API Requests
Face Detection and Analysis APIs
Facial Feature Localization APIs
Face Comparison APIs
Group Management APIs
Face Search APIs
Face Verification APIs
Image-based Liveness Detection (High Precision) APIs
Data Types
Error Codes
eKYC
History
Introduction
API Category
Making API Requests
Selfie Verification (Pure API) APIs
Selfie Verification (App SDK) APIs
Identity Verification (App SDK) APIs
Identity Verification(Mobile HTML5) APIs
AI Face Shield (Pure API) APIs
Other APIs
Data Types
Error Codes
Text To Speech
History
Introduction
API Category
Making API Requests
General Text-to-Speech APIs
Data Types
Error Codes
Tencent Machine Translation
History
Introduction
API Category
Making API Requests
APIs
Error Codes
Optical Character Recognition
History
Introduction
API Category
Making API Requests
Document Intelligent APIs
Card and Document OCR APIs
General Text OCR APIs
Vehicle Scene OCR APIs
Data Types
Error Codes
IoT Hub
History
Introduction
API Category
Making API Requests
Device Shadow APIs
Device APIs
CA Certificate APIs
Product APIs
Data Types
Error Codes
TDMQ for CKafka
History
Introduction
API Category
Making API Requests
Other APIs
ACL APIs
Instance APIs
Routing APIs
DataHub APIs
Topic APIs
Data Types
Error Codes
Cloud Message Queue
History
API Category
Making API Requests
Topic APIs
Queue APIs
Introduction
Data Types
Error Codes
Chat
JavaScript
Android
iOS & macOS
Swift
Flutter
Electron
Unity
React Native
C APIs
C++
Short Message Service
History
Introduction
API Category
Making API Requests
SMS Mobile Number APIs
SMS Conversion Rate APIs
Status Pull APIs
SMS Statistics APIs
SMS Signature APIs
SMS Delivery APIs
SMS Template APIs
Data Types
Error Codes
SMS Callback APIs
Tencent Push Notification Service
Overview
API Overview
Call Method
Push APIs
Tag APIs
Account APIs
Statistics APIs
User Attribute APIs
Server-Side Error Codes
Server SDKs
API (Java)
Simple Email Service
History
Introduction
API Category
Making API Requests
Domain Verification APIs
Mail APIs
Template APIs
Statistics APIs
Sender Address APIs
Blocklist APIs
Sending Status Query APIs
Batch Task APIs
Custom Blocklist APIs
Data Types
Error Codes
Tencent Real-Time Communication
History
Introduction
API Category
Room Management APIs
Stream mixing and relay APIs
On-cloud recording APIs
Data Monitoring APIs
Pull stream Relay Related interface
Web Record APIs
AI Service APIs
Cloud Slicing APIs
Cloud Moderation APIs
Making API Requests
Call Quality Monitoring APIs
Usage Statistics APIs
Data Types
Appendix
Error Codes
StreamLive
History
Introduction
API Category
Making API Requests
Input Management APIs
Input Security Group Management APIs
Channel Management APIs
Plan APIs
Watermark Management APIs
Statistics APIs
Data Types
Error Codes
StreamPackage
History
Introduction
API Category
Making API Requests
Channel Management APIs
Advertising Insertion Configuration Management APIs
Channel linear assembly management APIs
VOD remux task APIs
Usage Query APIs
HarvestJob Management APIs
Data Types
Error Codes
StreamLink
History
API Category
Making API Requests
Flow APIs
Data Types
Error Codes
Cloud Streaming Services
History
Introduction
API Category
Making API Requests
Live Pad APIs
Live Stream Mix APIs
Time Shifting APIs
Monitoring Data Query APIs
Billing Data Query APIs
Live Transcoding APIs
Delayed Playback Management APIs
Domain Name Management APIs
Watermark Management APIs
Certificate Management APIs
Stream Pulling APIs
Recording Management APIs
Live Callback APIs
Screencapturing and Porn Detection APIs
Authentication Management APIs
Live Stream Management APIs
Data Types
Error Codes
Video on Demand
History
Introduction
API Category
Other APIs
Media Processing APIs
Task Management APIs
Media Upload APIs
Media Management APIs
Event Notification Relevant API
Media Categorization APIs
Domain Name Management APIs
Distribution APIs
AI-based Sample Management APIs
Region Management APIs
Data Statistics APIs
Carousel-Related APIs
Just In Time Transcode APIs
No longer recommended APIs
Making API Requests
AI-based image processing APIs
Parameter Template APIs
Task Flow APIs
Data Types
Error Codes
Video on Demand API 2024-07-18
Media Processing Service
History
Introduction
API Category
Making API Requests
Processing Task Initiation APIs
Task Management APIs
Transcoding and Enhancement Template APIs
Watermark Template APIs
Screenshot Template APIs
Media AI Template APIs
Media AI—Hotword Lexicon APIs
Media AI—Sample Management APIs
Media Quality Inspection Template APIs
Live Streaming Recording Template APIs
Orchestration Management APIs
Data Statistics APIs
StreamLink—Security Group Management APIs
Other APIs
Image Processing Template APIs
AI Generation APIs
Other APIs
Data Types
Error Codes
Cloud Application Rendering
History
Introduction
API Category
Making API Requests
User APIs
Application Management APIs
Project Management APIs
Concurrency Management APIs
Stream Push Service APIs
Data Types
Error Codes
Game Multimedia Engine
History
Introduction
API Category
Usage APIs
Recording APIs
Making API Requests
Voice Chat APIs
Application APIs
Data Types
Error Codes
Tag
History
Introduction
API Category
Making API Requests
Write APIs
Read APIs
Project APIs
Data Types
Error Codes
Cloud Access Management
History
Introduction
API Category
Making API Requests
User APIs
Policy APIs
Role APIs
Identity Provider APIs
Data Types
Error Codes
CloudAudit
History
Introduction
API Category
Calling Method
CloudAudit APIs
Data Types
Error Codes
Tencent Cloud Organization
History
Introduction
API Category
Making API Requests
Organization Settings APIs
Department and Member Management APIs
Unified Member Login APIs
Member Access Management APIs
Organization Service Management APIs
Organization Management Policy APIs
Resource Sharing APIs
Identity Center Management APIs
Identity Center User Management APIs
Identity Center User Group Management APIs
Identity Center Management SCIM Synchronization APIs
Identity Center Single Sign-On Management APIs
Identity Center Permission Configuration Management APIs
Identity Center Multi-Account Authorization Management APIs
Identity Center Sub-User Synchronization Management APIs
Data Types
Error Codes
TCO API 2018-12-25
Tencent Cloud Observability Platform
History
Introduction
API Category
Making API Requests
Monitoring Data Query APIs
Alarm APIs
Legacy Alert APIs
Notification Template APIs
TMP APIs
Grafana Service APIs
Event Center APIs
TencentCloud Managed Service for Prometheus APIs
Monitoring APIs
Data Types
Error Codes
Real User Monitoring
History
Introduction
API Category
Making API Requests
Console APIs
Business System and Project Information APIs
Custom Speed Test APIs
Custom Event APIs
API Monitoring APIs
Exception Analysis APIs
Page View APIs
Static Resource Monitoring APIs
Log APIs
Page Performance APIs
Data Types
Error Codes
International Partners
History
Introduction
API Category
Making API Requests
Customer Management APIs
Credit Management APIs
Agent APIs
Bill Management APIs
Voucher Management APIs
Commission Management APIs
Data Types
Error Codes
Billing Center
API Category
Funds Management APIs
Order Management APIs
Resource Management APIs
Bill Management APIs
Cost Allocation Management APIs
Cost Management APIs
Making API Requests
Organization Account APIs
Data Types
Error Codes
TDSQL Boundless
History
Introduction
API Category
Making API Requests
Instance APIs
Security Group APIs
Task APIs
Backup APIs
Rollback APIs
Parameter APIs
Database APIs
Data Types
Error Codes
TDMQ for MQTT
History
Introduction
API Category
Making API Requests
Cluster APIs
Topic APIs
Authorization Policy APIs
User APIs
Client APIs
Message APIs
Message Enhancement Rule APIs
Data Types
Error Codes
Tencent HY
History
Introduction
API Category
Making API Requests
Hunyuan Text APIs
Hunyuan 3D APIs
Data Types
Error Codes
Smart Media Hosting
History
Introduction
API Category
Making API Requests
PaaS Service APIs
Official Cloud Disk APIs
Data Types
Error Codes
Quota Center
History
Introduction
API Category
Making API Requests
Alarm APIs
Data Types
Error Codes
Message Center
History
Introduction
API Category
Making API Requests
Message Subscription APIs
Data Types
Error Codes
Business Intelligence
History
Introduction
API Category
Making API Requests
Project Management APIs
Role APIs
Database Table APIs
Report Embedding APIs
Page Management APIs
Data Types
Error Codes
LLM Knowledge Engine Basic API
History
Introduction
API Category
Making API Requests
Atomic Capability APIs
Data Types
Error Codes
Tencent Cloud Agent Development Platform
History
API Category
Making API Requests
Atomic Capability APIs
Operation Optimization APIs
Document Library APIs
Q&A Database APIs
Knowledge Tag APIs
Application Management APIs
Enterprise Management APIs
Billing APIs
Release Management APIs
Dialogue Endpoint APIs
Data Statistics APIs
Data Types
Error Codes
Tencent Cloud Blockchain as a Service
History
Introduction
API Category
Making API Requests
Hyperledger Fabric 2.3 APIs
Data Types
Error Codes
Performance Testing Service
History
Introduction
API Category
Making API Requests
PTS-related APIs
Data Types
Error Codes
Real-time Teleoperation
History
Introduction
API Category
Making API Requests
Project APIs
Device APIs
Session APIs
Authorization APIs
Other APIs
Data Types
Error Codes
Gateway Load Balancer
History
Introduction
API Category
Making API Requests
Target Group APIs
GWLB APIs
Other APIs
Data Types
Error Codes
Identity Aware Platform
History
Introduction
API Category
Making API Requests
IAP APIs
Error Codes
Cloud Dedicated Cluster
History
Introduction
API Category
Making API Requests
Cloud Dedicated Cluster (CDC) APIs
Data Types
Error Codes
Image Creation Large Model
History
Introduction
API Category
Making API Requests
Image Style Transfer APIs
Data Types
Error Codes
Face Fusion
API Category
Making API Requests
Image Face Fusion (Basic) APIs
Video Face Fusion (Single Face) APIs
Data Types
Error Codes
Tencent Smart Advisor-Chaotic Fault Generator
History
Introduction
API Category
Making API Requests
Task APIs
Template Library APIs
Data Types
Error Codes
Tencent HealthCare Omics Platform
History
Introduction
API Category
Making API Requests
Environment Management APIs
Tencent Healthcare Omics Platform APIs
Data Types
Error Codes
Tencent Cloud TCHouse-D
History
Introduction
API Category
Making API Requests
Cluster Operation APIs
Database and Table APIs
Cluster Information Viewing APIs
Hot-Cold Data Layering APIs
Database and Operation Audit APIs
User and Permission APIs
Resource Group Management APIs
Data Types
Error Codes
Tencent Cloud WeData
History
Introduction
API Category
Making API Requests
Project Management APIs
Smart Ops Related Interfaces
Resource Group APIs
Data Development APIs
Data Asset - Data Dictionary APIs
Data Development APIs
Ops Center APIs
Data Exploration APIs
Data Operations Related Interfaces
Asset APIs
Metadata Related Interfaces
Task Operations APIs
Data Security APIs
Instance Operation and Maintenance Related Interfaces
Data Map and Data Dictionary APIs
Data Quality Related Interfaces
DataInLong APIs
Platform Management APIs
Data Source Management APIs
Data Quality APIs
Platform Management APIs
Asset Data APIs
Data Source Management APIs
Data Types
Error Codes
WeData API 2025-08-06
Anti-DDoS
History
Introduction
API Category
Making API Requests
Anti-DDoS Advanced Instance APIs
Resource List APIs
Protection Configuration APIs
Other APIs
Alarm Notification APIs
Connection Configuration APIs
Intelligent Scheduling APIs
Black hole unblocking APIs
Statistical Report APIs
Data Types
Error Codes
Cloud Contact Center
History
Introduction
API Category
Making API Requests
Agent APIs
Skill Group APIs
Number APIs
Dual Call APIs
Predictive Outbound Call APIs
SIP Phone APIs
Call Service Record APIs
Billing APIs
Other APIs
Outbound Call APIs
Speech Intelligent Agent APIs
Data Types
Error Codes
Tencent Cloud Super App as a Service
History
Introduction
API Category
Making API Requests
Operation Management APIs
Platform Management APIs
Sensitive API-Related APIs
Role Management APIs
Team Management APIs
Other Console APIs
Mini Program or Mini Game APIs
Management-Sensitive APIs
Global Domain Management APIs
Superapp APIs
User Management APIs
Data Types
Tencent Cloud Smart Advisor
History
Introduction
API Category
Making API Requests
Other APIs
Task APIs
Cloud Architecture Console APIs
Data Types
Error Codes
TDMQ for RabbitMQ
History
Introduction
API Category
Making API Requests
Relevant APIs for RabbitMQ Serverless PAAS Capacity
RabbitMQ Serverless Instance Management APIs
Data Types
Error Codes
Control Center
History
Introduction
API Category
Making API Requests
Account Factory APIs
Data Types
Error Codes
TDMQ for CMQ
API Documentation
API 2.0 to 3.0 Switch Guide
Tencent Cloud TCHouse-P
History
Introduction
API Category
Making API Requests
Information Query APIs
Instance APIs
Query APIs
Cluster Management APIs
Cluster Operation APIs
Data Types
Error Codes
TDMQ for RocketMQ
History
API Category
Making API Requests
Topic APIs
Consumer Group APIs
Message APIs
Role Authentication APIs
Hitless Migration APIs
Cloud Migration APIs
Cluster APIs
Data Types
Error Codes
Cloud Dedicated Zone
History
Introduction
API Category
Making API Requests
Availability Zone APIs
Data Types
Error Codes
Tencent Cloud Health Dashboard
History
Introduction
API Category
Making API Requests
Event APIs
Data Types
Error Codes
Application Performance Management
History
Introduction
API Category
Making API Requests
Application APIs
Business System APIs
General Query APIs
Unavailable APIs
Performance Analysis APIs
Data Types
Error Codes
Config
History
Introduction
API Category
Making API Requests
Rule APIs
Resource APIs
Data Types
Error Codes
Automatic Speech Recognition
History
Introduction
API Category
Making API Requests
Recording Recognition APIs
Real-Time Speech Recognition APIs
Data Types
Error Codes
Tencent Cloud TI Platform
History
Introduction
API Category
Making API Requests
Online Service APIs
Data Types
Error Codes
Web Application Firewall
History
Introduction
API Category
Making API Requests
Asset Management APIs
Billing APIs
Protection Settings APIs
Other APIs
IP Management APIs
Integration APIs
Log Service APIs
Security Overview APIs
Rule Engine APIs
Data Types
Error Codes
Cloud Security Center
History
Introduction
API Category
Making API Requests
Multi-account management related APIs
Scan Task APIs
Risk Center APIs
Asset Center APIs
Cloud Boundary Analysis APIs
Cloud API Anomaly Detection APIs
Report Download APIs
Solid Protection APIs
Cloud Security Center Overview APIs
Data Types
Error Codes
Risk Control Engine
History
Introduction
API Category
Making API Requests
TencentCloud API APIs
Data Types
Error Codes
TencentDB for CTSDB
History
Introduction
API Category
Making API Requests
Instance APIs
Database APIs
Data Types
Error Codes
Tencent Interactive Whiteboard
History
Introduction
API Category
Making API Requests
Whiteboard Push APIs
Other APIs
Document Transcoding APIs
Real-Time Recording APIs
Statistics Query APIs
Whiteboard Snapshot APIs
Recording Video Generation APIs
Data Types
Error Codes
Tencent Container Security Service
History
Introduction
API Category
Making API Requests
Network Security APIs
Cluster Security APIs
Security Compliance APIs
Runtime security - High-risk syscalls
Runtime Security - Reverse Shell APIs
Runtime Security APIs
Alert Settings APIs
Advanced prevention - K8s API abnormal requests
Asset Management APIs
Security Operations - Log Analysis APIs
Runtime Security - Trojan Call APIs
Runtime Security - Container Escape APIs
Image Security APIs
Billing APIs
Data Types
Error Codes
Domains
History
Introduction
API Category
Making API Requests
Domain Management APIs
Domain Query APIs
Bulk Operation APIs
Registrant Profile APIs
Other APIs
Data Types
Error Codes
Low-code Interactive Classroom
History
Introduction
API Category
Making API Requests
User Login APIs
Room Management APIs
Group Management APIs
Application Configuration APIs
Recording Management APIs
Courseware Management APIs
User Management APIs
Developer APIs
Data Types
Error Codes

接口鉴权

聚焦模式
字号
最后更新时间: 2026-03-18 19:42:30

签名方法 v1 简单易用,但是功能和安全性都不如签名方法 v3,推荐使用签名方法 v3。

首次接触,建议使用 API Explorer 中的“签名串生成”功能,选择签名版本为“API 3.0 签名 v1”,可以生成签名过程进行验证,并提供了部分编程语言的签名示例,也可直接生成 SDK 代码。推荐使用腾讯云 API 配套的 7 种常见的编程语言 SDK,已经封装了签名和请求过程,均已开源,支持 PythonJavaPHPGoNodeJS.NETC++

推荐使用 API Explorer
点击调试
您可以通过 API Explorer 的【签名串生成】模块查看每个接口签名的生成过程。

腾讯云 API 会对每个访问请求进行身份验证,即每个请求都需要在公共请求参数中包含签名信息(Signature)以验证请求者身份。
签名信息由安全凭证生成,安全凭证包括 SecretId 和 SecretKey;若用户还没有安全凭证,请前往 云API密钥页面 申请,否则无法调用云 API 接口。

1. 申请安全凭证

在第一次使用云 API 之前,请前往 云 API 密钥页面 申请安全凭证。
安全凭证包括 SecretId 和 SecretKey:

  • SecretId 用于标识 API 调用者身份
  • SecretKey 用于加密签名字符串和服务器端验证签名字符串的密钥。
  • 用户必须严格保管安全凭证,避免泄露。

申请安全凭证的具体步骤如下:

  1. 登录 腾讯云管理中心控制台
  2. 前往 云 API 密钥 的控制台页面
  3. 云 API 密钥 页面,单击【新建密钥】即可以创建一对 SecretId/SecretKey。

注意:每个账号最多可以拥有两对 SecretId/SecretKey。

2. 生成签名串

有了安全凭证 SecretId 和 SecretKey 后,就可以生成签名串了。以下是使用签名方法 v1 生成签名串的详细过程:

假设用户的 SecretId 和 SecretKey 分别是:

  • SecretId: AKID********************************
  • SecretKey: ********************************

注意:这里只是示例,请根据用户实际申请的 SecretId 和 SecretKey 进行后续操作!

以云服务器查看实例列表(DescribeInstances)请求为例,当用户调用这一接口时,其请求参数可能如下:

参数名称 中文 参数值
Action 方法名 DescribeInstances
SecretId 密钥 ID AKID********************************
Timestamp 当前时间戳 1465185768
Nonce 随机正整数 11886
Region 实例所在区域 ap-guangzhou
InstanceIds.0 待查询的实例 ID ins-09dx96dg
Offset 偏移量 0
Limit 最大允许输出 20
Version 接口版本号 2017-03-12

这里只展示了部分公共参数和接口输入参数,用户可以根据实际需要添加其他参数,例如 Language 和 Token 公共参数。

2.1. 对参数排序

首先对所有请求参数按参数名的字典序( ASCII 码)升序排序。注意:1)只按参数名进行排序,参数值保持对应即可,不参与比大小;2)按 ASCII 码比大小,如 InstanceIds.2 要排在 InstanceIds.12 后面,不是按字母表,也不是按数值。用户可以借助编程语言中的相关排序函数来实现这一功能,如 PHP 中的 ksort 函数。上述示例参数的排序结果如下:

{
    'Action' : 'DescribeInstances',
    'InstanceIds.0' : 'ins-09dx96dg',
    'Limit' : 20,
    'Nonce' : 11886,
    'Offset' : 0,
    'Region' : 'ap-guangzhou',
    'SecretId' : 'AKID********************************',
    'Timestamp' : 1465185768,
    'Version': '2017-03-12',
}

使用其它程序设计语言开发时,可对上面示例中的参数进行排序,得到的结果一致即可。

2.2. 拼接请求字符串

此步骤生成请求字符串。
将把上一步排序好的请求参数格式化成“参数名称=参数值”的形式,如对 Action 参数,其参数名称为 "Action" ,参数值为 "DescribeInstances" ,因此格式化后就为 Action=DescribeInstances 。
注意:“参数值”为原始值而非 url 编码后的值。

然后将格式化后的各个参数用"&"拼接在一起,最终生成的请求字符串为:

Action=DescribeInstances&InstanceIds.0=ins-09dx96dg&Limit=20&Nonce=11886&Offset=0&Region=ap-guangzhou&SecretId=AKID********************************&Timestamp=1465185768&Version=2017-03-12

2.3. 拼接签名原文字符串

此步骤生成签名原文字符串。
签名原文字符串由以下几个参数构成:

  1. 请求方法: 支持 POST 和 GET 方式,这里使用 GET 请求,注意方法为全大写。
  2. 请求主机:查看实例列表(DescribeInstances)的请求域名为:cvm.tencentcloudapi.com。实际的请求域名根据接口所属模块的不同而不同,详见各接口说明。
  3. 请求路径: 当前版本云API的请求路径固定为 / 。
  4. 请求字符串: 即上一步生成的请求字符串。

签名原文串的拼接规则为:请求方法 + 请求主机 +请求路径 + ? + 请求字符串

示例的拼接结果为:

GETcvm.tencentcloudapi.com/?Action=DescribeInstances&InstanceIds.0=ins-09dx96dg&Limit=20&Nonce=11886&Offset=0&Region=ap-guangzhou&SecretId=AKID********************************&Timestamp=1465185768&Version=2017-03-12

2.4. 生成签名串

此步骤生成签名串。
首先使用 HMAC-SHA1 算法对上一步中获得的签名原文字符串进行签名,然后将生成的签名串使用 Base64 进行编码,即可获得最终的签名串。

具体代码如下,以 PHP 语言为例:

$secretKey = '********************************';
$srcStr = 'GETcvm.tencentcloudapi.com/?Action=DescribeInstances&InstanceIds.0=ins-09dx96dg&Limit=20&Nonce=11886&Offset=0&Region=ap-guangzhou&SecretId=AKID********************************&Timestamp=1465185768&Version=2017-03-12';
$signStr = base64_encode(hash_hmac('sha1', $srcStr, $secretKey, true));
echo $signStr;

最终得到的签名串为:

7RAM2xfNMO9EiVTNmPg06MRnCvQ=

使用其它程序设计语言开发时,可用上面示例中的原文进行签名验证,得到的签名串与例子中的一致即可。

3. 签名串编码

生成的签名串并不能直接作为请求参数,需要对其进行 URL 编码。

如上一步生成的签名串为 7RAM2xfNMO9EiVTNmPg06MRnCvQ= ,最终得到的签名串请求参数(Signature)为:7RAM2xfNMO9EiVTNmPg06MRnCvQ%3D,它将用于生成最终的请求 URL。

注意:如果用户的请求方法是 GET,或者请求方法为 POST 同时 Content-Type 为 application/x-www-form-urlencoded,则发送请求时所有请求参数的值均需要做 URL 编码,参数键和=符号不需要编码。非 ASCII 字符在 URL 编码前需要先以 UTF-8 进行编码。

注意:有些编程语言的网络库会自动为所有参数进行 urlencode,在这种情况下,就不需要对签名串进行 URL 编码了,否则两次 URL 编码会导致签名失败。

注意:其他参数值也需要进行编码,编码采用 RFC 3986。使用 %XY 对特殊字符例如汉字进行百分比编码,其中“X”和“Y”为十六进制字符(0-9 和大写字母 A-F),使用小写将引发错误。

4. 签名失败

根据实际情况,存在以下签名失败的错误码,请根据实际情况处理。

错误代码 错误描述
AuthFailure.SignatureExpire 签名过期
AuthFailure.SecretIdNotFound 密钥不存在
AuthFailure.SignatureFailure 签名错误
AuthFailure.TokenFailure token 错误
AuthFailure.InvalidSecretId 密钥非法(不是云 API 密钥类型)

5. 签名演示

在实际调用 API 3.0 时,推荐使用配套的腾讯云 SDK 3.0 ,SDK 封装了签名的过程,开发时只关注产品提供的具体接口即可。当前支持的编程语言有:

下面提供了不同产品的生成签名 demo,您可以找到对应的产品参考签名的生成:

为了更清楚的解释签名过程,下面以实际编程语言为例,将上述的签名过程具体实现。请求的域名、调用的接口和参数的取值都以上述签名过程为准,代码只为解释签名过程,并不具备通用性,实际开发请尽量使用 SDK 。

最终输出的 url 可能为:https://cvm.tencentcloudapi.com/?Action=DescribeInstances&InstanceIds.0=ins-09dx96dg&Limit=20&Nonce=11886&Offset=0&Region=ap-guangzhou&SecretId=AKID********************************&Signature=7RAM2xfNMO9EiVTNmPg06MRnCvQ%3D&Timestamp=1465185768&Version=2017-03-12

注意:由于示例中的密钥是虚构的,时间戳也不是系统当前时间,因此如果将此 url 在浏览器中打开或者用 curl 等命令调用时会返回鉴权错误:签名过期。为了得到一个可以正常返回的 url ,需要修改示例中的 SecretId 和 SecretKey 为真实的密钥,并使用系统当前时间戳作为 Timestamp 。

注意:在下面的示例中,不同编程语言,甚至同一语言每次执行得到的 url 可能都有所不同,表现为参数的顺序不同,但这并不影响正确性。只要所有参数都在,且签名计算正确即可。

注意:以下代码仅适用于 API 3.0,不能直接用于其他的签名流程,请以对应的实际文档为准。

Java

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Random;
import java.util.TreeMap;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import javax.xml.bind.DatatypeConverter;

public class TencentCloudAPIDemo {
private final static String CHARSET = "UTF-8";

<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> String <span class="hljs-title">sign</span><span class="hljs-params">(String s, String key, String method)</span> <span class="hljs-keyword">throws</span> Exception </span>{
    Mac mac = Mac.getInstance(method);
    SecretKeySpec secretKeySpec = <span class="hljs-keyword">new</span> SecretKeySpec(key.getBytes(CHARSET), mac.getAlgorithm());
    mac.init(secretKeySpec);
    <span class="hljs-keyword">byte</span>[] hash = mac.doFinal(s.getBytes(CHARSET));
    <span class="hljs-keyword">return</span> DatatypeConverter.printBase64Binary(hash);
}

<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> String <span class="hljs-title">getStringToSign</span><span class="hljs-params">(TreeMap&lt;String, Object> params)</span> </span>{
    StringBuilder s2s = <span class="hljs-keyword">new</span> StringBuilder(<span class="hljs-string">&quot;GETcvm.tencentcloudapi.com/?&quot;</span>);
    <span class="hljs-comment">// 签名时要求对参数进行字典排序,此处用TreeMap保证顺序</span>
    <span class="hljs-keyword">for</span> (String k : params.keySet()) {
        s2s.append(k).append(<span class="hljs-string">&quot;=&quot;</span>).append(params.get(k).toString()).append(<span class="hljs-string">&quot;&&quot;</span>);
    }
    <span class="hljs-keyword">return</span> s2s.toString().substring(<span class="hljs-number">0</span>, s2s.length() - <span class="hljs-number">1</span>);
}

<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> String <span class="hljs-title">getUrl</span><span class="hljs-params">(TreeMap&lt;String, Object> params)</span> <span class="hljs-keyword">throws</span> UnsupportedEncodingException </span>{
    StringBuilder url = <span class="hljs-keyword">new</span> StringBuilder(<span class="hljs-string">&quot;https://cvm.tencentcloudapi.com/?&quot;</span>);
    <span class="hljs-comment">// 实际请求的url中对参数顺序没有要求</span>
    <span class="hljs-keyword">for</span> (String k : params.keySet()) {
        <span class="hljs-comment">// 需要对请求串进行urlencode,由于key都是英文字母,故此处仅对其value进行urlencode</span>
        url.append(k).append(<span class="hljs-string">&quot;=&quot;</span>).append(URLEncoder.encode(params.get(k).toString(), CHARSET)).append(<span class="hljs-string">&quot;&&quot;</span>);
    }
    <span class="hljs-keyword">return</span> url.toString().substring(<span class="hljs-number">0</span>, url.length() - <span class="hljs-number">1</span>);
}

<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">main</span><span class="hljs-params">(String[] args)</span> <span class="hljs-keyword">throws</span> Exception </span>{
    TreeMap&lt;String, Object> params = <span class="hljs-keyword">new</span> TreeMap&lt;String, Object>(); <span class="hljs-comment">// TreeMap可以自动排序</span>
    <span class="hljs-comment">// 实际调用时应当使用随机数,例如:params.put(&quot;Nonce&quot;, new Random().nextInt(java.lang.Integer.MAX_VALUE));</span>
    params.put(<span class="hljs-string">&quot;Nonce&quot;</span>, <span class="hljs-number">11886</span>); <span class="hljs-comment">// 公共参数</span>
    <span class="hljs-comment">// 实际调用时应当使用系统当前时间,例如:   params.put(&quot;Timestamp&quot;, System.currentTimeMillis() / 1000);</span>
    params.put(<span class="hljs-string">&quot;Timestamp&quot;</span>, <span class="hljs-number">1465185768</span>); <span class="hljs-comment">// 公共参数</span>
    <span class="hljs-comment">// 需要设置环境变量 TENCENTCLOUD_SECRET_ID,值为示例的 AKID********************************</span>
    params.put(<span class="hljs-string">&quot;SecretId&quot;</span>, System.getenv(<span class="hljs-string">&quot;TENCENTCLOUD_SECRET_ID&quot;</span>)); <span class="hljs-comment">// 公共参数</span>
    params.put(<span class="hljs-string">&quot;Action&quot;</span>, <span class="hljs-string">&quot;DescribeInstances&quot;</span>); <span class="hljs-comment">// 公共参数</span>
    params.put(<span class="hljs-string">&quot;Version&quot;</span>, <span class="hljs-string">&quot;2017-03-12&quot;</span>); <span class="hljs-comment">// 公共参数</span>
    params.put(<span class="hljs-string">&quot;Region&quot;</span>, <span class="hljs-string">&quot;ap-guangzhou&quot;</span>); <span class="hljs-comment">// 公共参数</span>
    params.put(<span class="hljs-string">&quot;Limit&quot;</span>, <span class="hljs-number">20</span>); <span class="hljs-comment">// 业务参数</span>
    params.put(<span class="hljs-string">&quot;Offset&quot;</span>, <span class="hljs-number">0</span>); <span class="hljs-comment">// 业务参数</span>
    params.put(<span class="hljs-string">&quot;InstanceIds.0&quot;</span>, <span class="hljs-string">&quot;ins-09dx96dg&quot;</span>); <span class="hljs-comment">// 业务参数</span>
    <span class="hljs-comment">// 需要设置环境变量 TENCENTCLOUD_SECRET_KEY,值为示例的 ********************************</span>
    params.put(<span class="hljs-string">&quot;Signature&quot;</span>, sign(getStringToSign(params), System.getenv(<span class="hljs-string">&quot;TENCENTCLOUD_SECRET_KEY&quot;</span>), <span class="hljs-string">&quot;HmacSHA1&quot;</span>)); <span class="hljs-comment">// 公共参数</span>
    System.out.println(getUrl(params));
}

}

Python

注意:如果是在 Python 2 环境中运行,需要先安装 requests 依赖包: pip install requests

# -*- coding: utf8 -*-
import base64
import hashlib
import hmac
import os
import time

import requests

# 需要设置环境变量 TENCENTCLOUD_SECRET_ID,值为示例的 AKID****
secret_id = os.environ.get("TENCENTCLOUD_SECRET_ID")
# 需要设置环境变量 TENCENTCLOUD_SECRET_KEY,值为示例的 ****
secret_key = os.environ.get("TENCENTCLOUD_SECRET_KEY")

def get_string_to_sign(method, endpoint, params):
s = method + endpoint + "/?"
query_str = "&".join("%s=%s" % (k, params[k]) for k in sorted(params))
return s + query_str

def sign_str(key, s, method):
hmac_str = hmac.new(key.encode("utf8"), s.encode("utf8"), method).digest()
return base64.b64encode(hmac_str)

if name == 'main':
endpoint = "cvm.tencentcloudapi.com"
data = {
'Action' : 'DescribeInstances',
'InstanceIds.0' : 'ins-09dx96dg',
'Limit' : 20,
'Nonce' : 11886,
'Offset' : 0,
'Region' : 'ap-guangzhou',
'SecretId' : secret_id,
'Timestamp' : 1465185768, # int(time.time())
'Version': '2017-03-12'
}
s = get_string_to_sign("GET", endpoint, data)
data["Signature"] = sign_str(secret_key, s, hashlib.sha1)
print(data["Signature"])
# 此处会实际调用,成功后可能产生计费
# resp = requests.get("https://" + endpoint, params=data)
# print(resp.url)

Golang

package main

import (
"bytes"
"crypto/hmac"
"crypto/sha1"
"encoding/base64"
"fmt"
"os"
"sort"
"strconv"
)

func main() {
// 需要设置环境变量 TENCENTCLOUD_SECRET_ID,值为示例的 AKID****
secretId := os.Getenv("TENCENTCLOUD_SECRET_ID")
// 需要设置环境变量 TENCENTCLOUD_SECRET_KEY,值为示例的 ****
secretKey := os.Getenv("TENCENTCLOUD_SECRET_KEY")
params := map[string]string{
"Nonce": "11886",
"Timestamp": strconv.Itoa(1465185768),
"Region": "ap-guangzhou",
"SecretId": secretId,
"Version": "2017-03-12",
"Action": "DescribeInstances",
"InstanceIds.0": "ins-09dx96dg",
"Limit": strconv.Itoa(20),
"Offset": strconv.Itoa(0),
}

<span class="hljs-keyword">var</span> buf bytes.Buffer
buf.WriteString(<span class="hljs-string">&quot;GET&quot;</span>)
buf.WriteString(<span class="hljs-string">&quot;cvm.tencentcloudapi.com&quot;</span>)
buf.WriteString(<span class="hljs-string">&quot;/&quot;</span>)
buf.WriteString(<span class="hljs-string">&quot;?&quot;</span>)

<span class="hljs-comment">// sort keys by ascii asc order</span>
keys := <span class="hljs-built_in">make</span>([]<span class="hljs-keyword">string</span>, <span class="hljs-number">0</span>, <span class="hljs-built_in">len</span>(params))
<span class="hljs-keyword">for</span> k, _ := <span class="hljs-keyword">range</span> params {
    keys = <span class="hljs-built_in">append</span>(keys, k)
}
sort.Strings(keys)

<span class="hljs-keyword">for</span> i := <span class="hljs-keyword">range</span> keys {
    k := keys[i]
    buf.WriteString(k)
    buf.WriteString(<span class="hljs-string">&quot;=&quot;</span>)
    buf.WriteString(params[k])
    buf.WriteString(<span class="hljs-string">&quot;&&quot;</span>)
}
buf.Truncate(buf.Len() - <span class="hljs-number">1</span>)

hashed := hmac.New(sha1.New, []<span class="hljs-keyword">byte</span>(secretKey))
hashed.Write(buf.Bytes())

fmt.Println(base64.StdEncoding.EncodeToString(hashed.Sum(<span class="hljs-literal">nil</span>)))

}

PHP

<?php
// 需要设置环境变量 TENCENTCLOUD_SECRET_ID,值为示例的 AKID********************************
$secretId = getenv("TENCENTCLOUD_SECRET_ID");
// 需要设置环境变量 TENCENTCLOUD_SECRET_KEY,值为示例的 ********************************
$secretKey = getenv("TENCENTCLOUD_SECRET_KEY");
$param["Nonce"] = 11886;//rand();
$param["Timestamp"] = 1465185768;//time();
$param["Region"] = "ap-guangzhou";
$param["SecretId"] = $secretId;
$param["Version"] = "2017-03-12";
$param["Action"] = "DescribeInstances";
$param["InstanceIds.0"] = "ins-09dx96dg";
$param["Limit"] = 20;
$param["Offset"] = 0;

ksort($param);

$signStr = "GETcvm.tencentcloudapi.com/?";
foreach ( $param as $key => $value ) {
$signStr = $signStr . $key . "=" . $value . "&";
}
$signStr = substr($signStr, 0, -1);

$signature = base64_encode(hash_hmac("sha1", $signStr, $secretKey, true));
echo $signature.PHP_EOL;
// need to install and enable curl extension in php.ini
// $param["Signature"] = $signature;
// $url = "https://cvm.tencentcloudapi.com/?".http_build_query($param);
// echo $url.PHP_EOL;
// $ch = curl_init();
// curl_setopt($ch, CURLOPT_URL, $url);
// $output = curl_exec($ch);
// curl_close($ch);
// echo json_decode($output);

Ruby

# -*- coding: UTF-8 -*-
# require ruby>=2.3.0
require 'time'
require 'openssl'
require 'base64'

# 需要设置环境变量 TENCENTCLOUD_SECRET_ID,值为示例的 AKID****
secret_id = ENV["TENCENTCLOUD_SECRET_ID"]
# 需要设置环境变量 TENCENTCLOUD_SECRET_KEY,值为示例的 ****
secret_key = ENV["TENCENTCLOUD_SECRET_KEY"]

method = 'GET'
endpoint = 'cvm.tencentcloudapi.com'
data = {
'Action' => 'DescribeInstances',
'InstanceIds.0' => 'ins-09dx96dg',
'Limit' => 20,
'Nonce' => 11886,
'Offset' => 0,
'Region' => 'ap-guangzhou',
'SecretId' => secret_id,
'Timestamp' => 1465185768, # Time.now.to_i
'Version' => '2017-03-12',
}
sign = method + endpoint + '/?'
params = []
data.sort.each do |item|
params << "#{item[0]}=#{item[1]}"
end
sign += params.join('&')
digest = OpenSSL::Digest.new('sha1')
data['Signature'] = Base64.encode64(OpenSSL::HMAC.digest(digest, secret_key, sign))
puts data['Signature']

# require 'net/http'
# uri = URI('https://' + endpoint)
# uri.query = URI.encode_www_form(data)
# p uri
# res = Net::HTTP.get_response(uri)
# puts res.body

DotNet

using System;
using System.Collections.Generic;
using System.Net;
using System.Security.Cryptography;
using System.Text;

public class Application {
public static string Sign(string signKey, string secret)
{
string signRet = string.Empty;
using (HMACSHA1 mac = new HMACSHA1(Encoding.UTF8.GetBytes(signKey)))
{
byte[] hash = mac.ComputeHash(Encoding.UTF8.GetBytes(secret));
signRet = Convert.ToBase64String(hash);
}
return signRet;
}
public static string MakeSignPlainText(SortedDictionary<string, string> requestParams, string requestMethod, string requestHost, string requestPath)
{
string retStr = "";
retStr += requestMethod;
retStr += requestHost;
retStr += requestPath;
retStr += "?";
string v = "";
foreach (string key in requestParams.Keys)
{
v += string.Format("{0}={1}&", key, requestParams[key]);
}
retStr += v.TrimEnd('&');
return retStr;
}

<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">Main</span>(<span class="hljs-params"><span class="hljs-built_in">string</span>[] args</span>)</span>
{
    <span class="hljs-comment">// 密钥参数</span>
    <span class="hljs-comment">// 需要设置环境变量 TENCENTCLOUD_SECRET_ID,值为示例的 AKID********************************</span>
    <span class="hljs-built_in">string</span> SECRET_ID = Environment.GetEnvironmentVariable(<span class="hljs-string">&quot;TENCENTCLOUD_SECRET_ID&quot;</span>);
    <span class="hljs-comment">// 需要设置环境变量 TENCENTCLOUD_SECRET_KEY,值为示例的 ********************************</span>
    <span class="hljs-built_in">string</span> SECRET_KEY = Environment.GetEnvironmentVariable(<span class="hljs-string">&quot;TENCENTCLOUD_SECRET_KEY&quot;</span>);

    <span class="hljs-built_in">string</span> endpoint = <span class="hljs-string">&quot;cvm.tencentcloudapi.com&quot;</span>;
    <span class="hljs-built_in">string</span> region = <span class="hljs-string">&quot;ap-guangzhou&quot;</span>;
    <span class="hljs-built_in">string</span> action = <span class="hljs-string">&quot;DescribeInstances&quot;</span>;
    <span class="hljs-built_in">string</span> version = <span class="hljs-string">&quot;2017-03-12&quot;</span>;
    <span class="hljs-built_in">double</span> RequestTimestamp = <span class="hljs-number">1465185768</span>;  <span class="hljs-comment">// 时间戳 2019-02-26 00:44:25,此参数作为示例,以实际为准</span>
    <span class="hljs-comment">// long timestamp = ToTimestamp() / 1000;</span>
    <span class="hljs-comment">// string requestTimestamp = timestamp.ToString();</span>
    Dictionary&lt;<span class="hljs-built_in">string</span>, <span class="hljs-built_in">string</span>> param = <span class="hljs-keyword">new</span> Dictionary&lt;<span class="hljs-built_in">string</span>, <span class="hljs-built_in">string</span>>();
    param.Add(<span class="hljs-string">&quot;Limit&quot;</span>, <span class="hljs-string">&quot;20&quot;</span>);
    param.Add(<span class="hljs-string">&quot;Offset&quot;</span>, <span class="hljs-string">&quot;0&quot;</span>);
    param.Add(<span class="hljs-string">&quot;InstanceIds.0&quot;</span>, <span class="hljs-string">&quot;ins-09dx96dg&quot;</span>);
    param.Add(<span class="hljs-string">&quot;Action&quot;</span>, action);
    param.Add(<span class="hljs-string">&quot;Nonce&quot;</span>, <span class="hljs-string">&quot;11886&quot;</span>);
    <span class="hljs-comment">// param.Add(&quot;Nonce&quot;, Math.Abs(new Random().Next()).ToString());</span>

    param.Add(<span class="hljs-string">&quot;Timestamp&quot;</span>, RequestTimestamp.ToString());
    param.Add(<span class="hljs-string">&quot;Version&quot;</span>, version);

    param.Add(<span class="hljs-string">&quot;SecretId&quot;</span>, SECRET_ID);
    param.Add(<span class="hljs-string">&quot;Region&quot;</span>, region);
    SortedDictionary&lt;<span class="hljs-built_in">string</span>, <span class="hljs-built_in">string</span>> headers = <span class="hljs-keyword">new</span> SortedDictionary&lt;<span class="hljs-built_in">string</span>, <span class="hljs-built_in">string</span>>(param, StringComparer.Ordinal);
    <span class="hljs-built_in">string</span> sigInParam = MakeSignPlainText(headers, <span class="hljs-string">&quot;GET&quot;</span>, endpoint, <span class="hljs-string">&quot;/&quot;</span>);
    <span class="hljs-built_in">string</span> sigOutParam = Sign(SECRET_KEY, sigInParam);
    Console.WriteLine(sigOutParam);
}

}

NodeJS

const crypto = require('crypto');

function get_req_url(params, endpoint){
params['Signature'] = encodeURIComponent(params['Signature']);
const url_strParam = sort_params(params)
return "https://" + endpoint + "/?" + url_strParam.slice(1);
}

function formatSignString(reqMethod, endpoint, path, strParam){
let strSign = reqMethod + endpoint + path + "?" + strParam.slice(1);
return strSign;
}
function sha1(secretKey, strsign){
let signMethodMap = {'HmacSHA1': "sha1"};
let hmac = crypto.createHmac(signMethodMap['HmacSHA1'], secretKey || "");
return hmac.update(Buffer.from(strsign, 'utf8')).digest('base64')
}

function sort_params(params){
let strParam = "";
let keys = Object.keys(params);
keys.sort();
for (let k in keys) {
//k = k.replace(/_/g, '.');
strParam += ("&" + keys[k] + "=" + params[keys[k]]);
}
return strParam
}

function main(){
// 密钥参数
// 需要设置环境变量 TENCENTCLOUD_SECRET_ID,值为示例的 AKID****
const SECRET_ID = process.env.TENCENTCLOUD_SECRET_ID
// 需要设置环境变量 TENCENTCLOUD_SECRET_KEY,值为示例的 ****
const SECRET_KEY = process.env.TENCENTCLOUD_SECRET_KEY

<span class="hljs-keyword">const</span> endpoint = <span class="hljs-string">&quot;cvm.tencentcloudapi.com&quot;</span>
<span class="hljs-keyword">const</span> Region = <span class="hljs-string">&quot;ap-guangzhou&quot;</span>
<span class="hljs-keyword">const</span> Version = <span class="hljs-string">&quot;2017-03-12&quot;</span>
<span class="hljs-keyword">const</span> Action = <span class="hljs-string">&quot;DescribeInstances&quot;</span>
<span class="hljs-keyword">const</span> Timestamp = <span class="hljs-number">1465185768</span>  <span class="hljs-comment">// 时间戳 2016-06-06 12:02:48, 此参数作为示例,以实际为准</span>
<span class="hljs-comment">// const Timestamp = Math.round(Date.now() / 1000)</span>
<span class="hljs-keyword">const</span> Nonce = <span class="hljs-number">11886</span>  <span class="hljs-comment">// 随机正整数</span>
<span class="hljs-comment">//const nonce = Math.round(Math.random() * 65535)</span>

<span class="hljs-keyword">let</span> params = {};
params[<span class="hljs-string">&#x27;Action&#x27;</span>] = Action;
params[<span class="hljs-string">&#x27;InstanceIds.0&#x27;</span>] = <span class="hljs-string">&#x27;ins-09dx96dg&#x27;</span>;
params[<span class="hljs-string">&#x27;Limit&#x27;</span>] = <span class="hljs-number">20</span>;
params[<span class="hljs-string">&#x27;Offset&#x27;</span>] = <span class="hljs-number">0</span>;
params[<span class="hljs-string">&#x27;Nonce&#x27;</span>] = Nonce;
params[<span class="hljs-string">&#x27;Region&#x27;</span>] = Region;
params[<span class="hljs-string">&#x27;SecretId&#x27;</span>] = SECRET_ID;
params[<span class="hljs-string">&#x27;Timestamp&#x27;</span>] = Timestamp;
params[<span class="hljs-string">&#x27;Version&#x27;</span>] = Version;

<span class="hljs-comment">// 1. 对参数排序,并拼接请求字符串</span>
strParam = sort_params(params)

<span class="hljs-comment">// 2. 拼接签名原文字符串</span>
<span class="hljs-keyword">const</span> reqMethod = <span class="hljs-string">&quot;GET&quot;</span>;
<span class="hljs-keyword">const</span> path = <span class="hljs-string">&quot;/&quot;</span>;
strSign = formatSignString(reqMethod, endpoint, path, strParam)
<span class="hljs-comment">// console.log(strSign)</span>

<span class="hljs-comment">// 3. 生成签名串</span>
params[<span class="hljs-string">&#x27;Signature&#x27;</span>] = sha1(SECRET_KEY, strSign)
<span class="hljs-built_in">console</span>.log(params[<span class="hljs-string">&#x27;Signature&#x27;</span>])

<span class="hljs-comment">// 4. 进行url编码并拼接请求url</span>
<span class="hljs-comment">// const req_url = get_req_url(params, endpoint)</span>
<span class="hljs-comment">// console.log(params[&#x27;Signature&#x27;])</span>
<span class="hljs-comment">// console.log(req_url)</span>

}
main()

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈