合作伙伴工作台
注册

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 KeyappSecret为对应的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"




这篇文档是否帮助您解决了问题?
如果您愿意进一步帮助我们改进文档 ,请留下您的联系方式。