SecretId
and SecretKey
. SecretId
is used to identify the API requester, while SecretKey
is a key used for signature string encryption and authentication by the server. You can get them on the API Key Management page as shown below:Note:Your security credential represents your account identity and granted permissions, which is equivalent to your login password. Do not disclose it to others.
*.tencentcloudapi.com
and varies by product. For example, the endpoint of CVM is cvm.tencentcloudapi.com
. For specific endpoints, please see the API documentation of the corresponding product .ubuntu
sudo apt-get install cmake
centos
yum install cmake3
libcurl
; otherwise, there may be a libcurl
memory leak bug.ubuntu
sudo apt-get install libcurl4-openssl-dev
centos
yum install libcurl-devel
ubuntu
sudo apt-get install libssl-dev
centos
yum install openssl-devel
libuuid
dependency library. Below is the sample code for installation:ubuntu
sudo apt-get install uuid-dev
centos
yum install libuuid-devel
path/to/
represents the actual path of the tencentcloud-sdk-cpp
package.cd <path/to/tencentcloud-sdk-cpp>
mkdir sdk_build
cd sdk_build
cmake ..
make
sudo make install
Note:The demo cannot be run directly. You need to replace the key and other information with your real and usable information. It is better to configure them in environment variables to avoid exposing them in the code.
The following describes how to call the DescribeInstances
API of CVM.
#include <tencentcloud/core/TencentCloud.h>
#include <tencentcloud/core/Credential.h>
#include <tencentcloud/cvm/v20170312/CvmClient.h>
#include <tencentcloud/cvm/v20170312/model/DescribeInstancesRequest.h>
#include <tencentcloud/cvm/v20170312/model/DescribeInstancesResponse.h>
#include <tencentcloud/cvm/v20170312/model/Instance.h>
#include <iostream>
#include <string>
using namespace TencentCloud;
using namespace TencentCloud::Cvm::V20170312;
using namespace TencentCloud::Cvm::V20170312::Model;
using namespace std;
int main()
{
TencentCloud::InitAPI();
string secretId = "<your secret id>";
string secretKey = "<your secret key>";
Credential cred = Credential(secretId, secretKey);
DescribeInstancesRequest req = DescribeInstancesRequest();
CvmClient cvm_client = CvmClient(cred, "ap-guangzhou");
auto outcome = cvm_client.DescribeInstances(req);
if (!outcome.IsSuccess())
{
cout << outcome.GetError().PrintAll() << endl;
TencentCloud::ShutdownAPI();
return -1;
}
DescribeInstancesResponse rsp = outcome.GetResult();
cout<<"RequestId="<<rsp.GetRequestId()<<endl;
cout<<"TotalCount="<<rsp.GetTotalCount()<<endl;
if (rsp.InstanceSetHasBeenSet())
{
vector<Instance> instanceSet = rsp.GetInstanceSet();
for (auto itr=instanceSet.begin(); itr!=instanceSet.end(); ++itr)
{
cout<<(*itr).GetPlacement().GetZone()<<endl;
}
}
TencentCloud::ShutdownAPI();
return 0;
}
Compile and run the demo code:
cd example/cvm/v20170312
mkdir build
cd build
cmake ..
make
./DescribeInstances
If the system returns an error indicating that a dynamic library is not found, you can specify the path to the dynamic library. For example, if the libtencentcloud-sdk-cpp-core.so
library is installed in /usr/local/lib
, then add the following line:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
./DescribeInstances
Note:For more samples, please see the example directory.
The sample installation code is as follows:
git clone https://github.com/google/googletest
cd googletest
cmake CMakeLists.txt
make
Copy the generated libgtest.a
and libgtest_main.a
static libraries and the header file of gtest to the system directory.
Run the following script:
sh function_test.sh
If you use the SDK to call an API in a proxy environment, you need to set the system environment variable https_proxy
(as shown in the sample code); otherwise, it may not be called normally, and a connection timeout exception will be thrown.
Was this page helpful?