tencent cloud

PHP
最后更新时间:2024-12-02 20:36:45
PHP
最后更新时间: 2024-12-02 20:36:45

简介

欢迎使用腾讯云开发者工具套件(SDK)3.0,SDK 3.0 是云 API 3.0 平台的配套工具。SDK 3.0 实现了统一化,各个语言版本的 SDK 具备使用方法相同、接口调用方式相同、错误码和返回包格式。
本文以 PHP SDK 3.0 为例,介绍如何使用、调试并接入腾讯云产品 API。
目前已支持云服务器 CVM、私有网络 VPC 、云硬盘 CBS 等 腾讯云产品,后续会支持其他云产品接入。

依赖环境

PHP 5.6.33 版本及以上。
获取安全凭证。安全凭证包含 SecretId 及 SecretKey 两部分。SecretId 用于标识 API 调用者的身份,SecretKey 用于加密签名字符串和服务器端验证签名字符串的密钥。前往 API 密钥管理 页面,即可进行获取,如下图所示:


注意:
您的安全凭证代表您的账号身份和所拥有的权限,等同于您的登录密码,切勿泄露他人。
获取调用地址。调用地址(endpoint)一般形式为*.tencentcloudapi.com,产品的调用地址有一定区别,例如,云服务器的调用地址为cvm.tencentcloudapi.com。具体调用地址可参考对应产品的 API 文档

安装 PHP SDK 3.0

通过 Composer 获取安装是使用 PHP SDK 推荐方法,Composer 是 PHP 的依赖管理工具。关于 Composer 详细可参见 Composer 官网
说明:
Composer 需要 PHP 5.3.2+ 以上版本,且需要开启 openssl。

步骤1:安装 Composer

Windows 环境请访问 Composer 官网下载安装包安装。
Unix 环境在命令行中执行以下命令安装:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

步骤2:添加镜像源

中国大陆地区的用户可以使用腾讯云镜像源提高下载速度,在打开的命令窗口执行以下命令:
composer config -g repos.packagist composer https://mirrors.tencent.com/composer/

步骤3:添加依赖

在打开的命令窗口执行命令安装 SDK(安装到指定位置),例如安装到C:\\Users\\···>目录下,则在指定的位置打开命令窗口,并执行以下命令:
composer require tencentcloud/tencentcloud-sdk-php

步骤4:添加引用

在代码中添加以下引用代码。注意:如下仅为示例,Composer 会在项目根目录下生成 vendor 目录,/path/to/ 为项目根目录的实际绝对路径(如果是在当前目录执行,可以省略绝对路径)。
require '/path/to/vendor/autoload.php';
说明:
如果只想安装某个产品的,可以使用composer require tencentcloud/产品名,例如composer require tencentcloud/cvm

使用 SDK

推荐使用 API 3.0 Explorer,提供在线调用、签名验证、SDK 代码生成和快速检索接口等能力,能显著降低使用云 API 3.0 和 SDK 的难度。
还可以参考 SDK 仓库中 examples 目录中的示例,展示了更多的用法。
下面以查询实例接口 DescribeInstances 为例:
简化版
详细版
<?php
require_once '/path/to/vendor/autoload.php';

use TencentCloud\\Cvm\\V20170312\\Models\\DescribeInstancesRequest;
use TencentCloud\\Common\\Exception\\TencentCloudSDKException;
use TencentCloud\\Common\\Credential;

try {
$cred = new Credential("secretId", "secretKey");
$client = new CvmClient($cred, "ap-guangzhou");
$req = new DescribeInstancesRequest();
$resp = $client->DescribeInstances($req);
print_r($resp->toJsonString());
}
catch(TencentCloudSDKException $e) {
echo $e;
}

<?php
require_once '/path/to/vendor/autoload.php';
// 导入对应产品模块的client
use TencentCloud\\Cvm\\V20170312\\CvmClient;
// 导入要请求接口对应的Request类
use TencentCloud\\Cvm\\V20170312\\Models\\DescribeInstancesRequest;
use TencentCloud\\Cvm\\V20170312\\Models\\Filter;
use TencentCloud\\Common\\Exception\\TencentCloudSDKException;
use TencentCloud\\Common\\Credential;
// 导入可选配置类
use TencentCloud\\Common\\Profile\\ClientProfile;
use TencentCloud\\Common\\Profile\\HttpProfile;

try {
// 实例化一个证书对象,入参需要传入腾讯云账户secretId,secretKey
$cred = new Credential("secretId", "secretKey");

// 实例化一个http选项,可选的,没有特殊需求可以跳过
$httpProfile = new HttpProfile();
// 配置代理
// $httpProfile->setProxy("https://ip:port");
$httpProfile->setReqMethod("GET"); // post请求(默认为post请求)
$httpProfile->setReqTimeout(30); // 请求超时时间,单位为秒(默认60秒)
$httpProfile->setEndpoint("cvm.ap-shanghai.tencentcloudapi.com"); // 指定接入地域域名(默认就近接入)

// 实例化一个client选项,可选的,没有特殊需求可以跳过
$clientProfile = new ClientProfile();
$clientProfile->setSignMethod("TC3-HMAC-SHA256"); // 指定签名算法(默认为HmacSHA256)
$clientProfile->setHttpProfile($httpProfile);

// 实例化要请求产品(以cvm为例)的client对象,clientProfile是可选的
$client = new CvmClient($cred, "ap-shanghai", $clientProfile);

// 实例化一个cvm实例信息查询请求对象,每个接口都会对应一个request对象。
$req = new DescribeInstancesRequest();

// 填充请求参数,这里request对象的成员变量即对应接口的入参
// 你可以通过官网接口文档或跳转到request对象的定义处查看请求参数的定义
$respFilter = new Filter(); // 创建Filter对象, 以zone的维度来查询cvm实例
$respFilter->Name = "zone";
$respFilter->Values = ["ap-shanghai-1", "ap-shanghai-2"];
$req->Filters = [$respFilter]; // Filters 是成员为Filter对象的列表

// 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的
// 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应
$resp = $client->DescribeInstances($req);

// 输出json格式的字符串回包
print_r($resp->toJsonString());

// 也可以取出单个值。
// 你可以通过官网接口文档或跳转到response对象的定义处查看返回字段的定义
print_r($resp->TotalCount);
}
catch(TencentCloudSDKException $e) {
echo $e;
}

更多示例

您可以在 Github Examples 目录下找到更详细的示例。

相关配置

代理

如果是有代理的环境下,需要设置系统环境变量https_proxy,否则可能无法正常调用,抛出连接超时的异常。 或者使用 GuzzleHttp 代理配置:
$cred = new Credential("secretId", "secretKey");

$httpProfile = new HttpProfile();
$httpProfile->setProxy('https://ip:port');

$clientProfile = new ClientProfile();
$clientProfile->setHttpProfile($httpProfile);

$client = new OcrClient($cred, 'ap-beijing', $this->clientProfile);

常见问题

本页内容是否解决了您的问题?
您也可以 联系销售 提交工单 以寻求帮助。

文档反馈