安装
使用 go get
下载安装 SDK
go get -u github.com/aliyun/alibaba-cloud-sdk-go/sdk
快速使用
在您开始之前,您需要注册阿里云帐户并获取您的 凭证。
创建客户端
package main
import "github.com/aliyun/alibaba-cloud-sdk-go/sdk"
func main() {
client, err := sdk.NewClientWithAccessKey("REGION_ID", "ACCESS_KEY_ID", "ACCESS_KEY_SECRET")
if err != nil {
// Handle exceptions
panic(err)
}
}
ROA 请求
package main
import "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
func main() {
request := requests.NewCommonRequest() // 构造一个公共请求
request.Method = "GET" // 设置请求方式
request.Product = "CS" // 指定产品
request.Domain = "cs.aliyuncs.com" // 指定域名则不会寻址,如认证方式为 Bearer Token 的服务则需要指定
request.Version = "2015-12-15" // 指定产品版本
request.PathPattern = "/clusters/[ClusterId]" // 指定ROA风格路径规则
request.ApiName = "DescribeCluster" // 指定接口名
request.QueryParams["ClusterId"] = "123456" // 设置参数值
request.QueryParams["RegionId"] = "region_id" // 指定请求的区域,不指定则使用客户端区域、默认区域
request.TransToAcsRequest() // 把公共请求转化为acs请求
}
RPC 请求
package main
import "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
func main() {
request := requests.NewCommonRequest() // 构造一个公共请求
request.Method = "POST" // 设置请求方式
request.Product = "Ecs" // 指定产品
request.Domain = "ecs.aliyuncs.com" // 指定域名则不会寻址,如认证方式为 Bearer Token 的服务则需要指定
request.Version = "2014-05-26" // 指定产品版本
request.ApiName = "CreateInstance" // 指定接口名
request.QueryParams["InstanceType"] = "ecs.g5.large" // 设置参数值
request.QueryParams["RegionId"] = "region_id" // 指定请求的区域,不指定则使用客户端区域、默认区域
request.TransToAcsRequest() // 把公共请求转化为acs请求
}
示例代码
package main
import (
"fmt"
"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
"github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi"
)
func main(){
client, err := dysmsapi.NewClientWithAccessKey("cn-beijing", "xxxx", "xxx")
if err != nil {
panic(err)
}
request := requests.NewCommonRequest()
request.Method = "POST"
request.Scheme = "https" // https | http
request.Domain = "dysmsapi.aliyuncs.com"
request.Version = "2017-05-25"
request.ApiName = "SendSms"
request.QueryParams["RegionId"] = "cn-beijing"
request.QueryParams["PhoneNumbers"] = "xxx" //手机号
request.QueryParams["SignName"] = "xxx" //阿里云验证过的项目名 自己设置
request.QueryParams["TemplateCode"] = "xxx" //阿里云的短信模板号 自己设置
request.QueryParams["TemplateParam"] = "{\"code\":" + "777777" + "}" //短信模板中的验证码内容 自己生成 之前试过直接返回,但是失败,加上code成功。
response, err := client.ProcessCommonRequest(request)
fmt.Print( client.DoAction(request, response))
// fmt.Print(response)
if err != nil {
fmt.Print(err.Error())
}
fmt.Printf("response is %#v\n", response)
//json数据解析
}