Go SDK使用说明
1)搭建Go开发环境
目前Go SDK支持Go 1.6及以上版本,您可以通过访问Go官网进行下载安装,安装完成后,新建系统变量GOPATH,并将其指向您的代码目录;
2)调用Go SDK
i. 在选择服务和相应的开发语言后点击“SDK下载”按钮来下载SDK工具包。将下载的Go的SDK工具包行解压,解压后如图所示。
此工具包集成了应用开发相关接口,核心是apis目录下的.cs文件,和demo目录下的调用示例。接口文档在“doc”目录下的md文件中,文档中对各api接口的请求参数进行了详细的说明;
ii. 将apis文件添加至项目中的src文件夹中,然后根据您的需求,可以参考demo目录下的调用示例,调用示例中给出了不同功能调用各个接口的代码示范,供使用者参考,或者直接引入自身的开发代码中。
以查询设备列表为例,其所需的参数如下所示,其中appKey即您的App Key,appSecret为对应的App Secret,Appkey和AppSecret的获取请查看相关应用的详情界面。MasterKey和productId分别对应Master-APIkey和产品ID,可以从产品中心中的产品详情界面获取。其余的参数可以按照具体需求进行赋值。
func QueryDeviceList(appKey string, appSecret string, MasterKey string , productId string , searchValue string , pageNow string , pageSize string ) (*http.Response, error) {
path := "/aep_device_management/devices"
var headers map[string]string = make(map[string]string)
headers["MasterKey"] = MasterKey
var param map[string]string = make(map[string]string)
param["productId"] = productId
param["searchValue"] = searchValue
param["pageNow"] = pageNow
param["pageSize"] = pageSize
version := "20190507012134"
application := appKey
key := appSecret
return aepsdkcore.SendAepHttpRequest(path, headers, param, "", version, application, key, "GET")
}
调用示例如下所示,供使用者参考,或者直接引入自身的开发代码中。
import (
"apis/Aep_device_management"
"fmt"
"io/ioutil"
)
func QueryDeviceList_Demo() {
resp, err := aepapi.QueryDeviceList('appKey', 'appSecret', 'MasterKey', productId, searchValue, pageNow, pageSize)
if err != nil {
fmt.Println("QueryDeviceList err:", err)
return
}
fmt.Println("code:", resp.StatusCode, "\nerr:", err)
bodyStr, err1 := ioutil.ReadAll(resp.Body)
if err1 != nil {
fmt.Println("ioutil.ReadAll err:", err1)
return
}
fmt.Println(string(bodyStr))
defer resp.Body.Close()
}
注:如果调用SDK时出现报错,建议您参考在线文档中的API异常排查进行在线调试。
iii. 专网用户调用
如果您是专网用户,则需要您在调用时,修改baseUrl、timeUrl两处地址,位置为apis-core- AepSdkCore.go文件,若专网地址为:55.255.46.9:10000,示例代码如下:
package aepsdkcore
import (
"crypto/hmac"
"crypto/sha1"
"encoding/base64"
"fmt"
"net/http"
"sort"
"strconv"
"strings"
"time"
)
// //时间修正
var offset int64 = 0
var lastGetOffsetTime int64 = 0
const baseUrl = "http://55.255.46.9:10000"
const timeUrl = "http://55.255.46.9:10000/echo"