mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 02:48:34 +08:00
config
This commit is contained in:
@@ -90,8 +90,8 @@ gb28181:
|
||||
sip: tcp:5060
|
||||
# 萤石摄像头token
|
||||
ys:
|
||||
appKey: 2db7f777fa6f44bdaf1c20b7f065887c
|
||||
secret: bf59b1a2168da4b443473efe9b1cf1b0
|
||||
appKey: ""
|
||||
secret: ""
|
||||
|
||||
log:
|
||||
# 日志等级, trace, debug, info, warn, error, fatal
|
||||
|
||||
@@ -22,7 +22,7 @@ func (ys *Ys) GetDeviceList(pageNum, pageSize int) (devices []Device, total int6
|
||||
if err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
var page Page
|
||||
var page = Page{}
|
||||
err = tool.InterfaceToStruct(status.Page, &page)
|
||||
if err != nil {
|
||||
return nil, 0, err
|
||||
|
||||
41
pkg/ys/ys.go
41
pkg/ys/ys.go
@@ -5,19 +5,25 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
MASTERACC = 0 //主账号
|
||||
RAMACC = 1 //子账号
|
||||
//[用户]获取accessToken
|
||||
ACCESSTOKEN = "https://open.ys7.com/api/lapp/token/get"
|
||||
RAMTOKENGET = "https://open.ys7.com/api/lapp/ram/token/get" //获取子账户AccessToken
|
||||
)
|
||||
|
||||
type Ys struct {
|
||||
AppKey string
|
||||
Secret string
|
||||
IsRAM int
|
||||
AccountID string
|
||||
AccessToken string
|
||||
ExpireTime int64
|
||||
}
|
||||
@@ -27,15 +33,41 @@ func (ys *Ys) GetAccessToken() error {
|
||||
params["appKey"] = ys.AppKey
|
||||
params["appSecret"] = ys.Secret
|
||||
ac := &AccessToken{}
|
||||
_, err := ys.requset("POST", ACCESSTOKEN, params, &ac)
|
||||
_, err := ys.requset("POST", ACCESSTOKEN, params, ac)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
ys.AccessToken = ac.AccessToken
|
||||
ys.ExpireTime = ac.ExpireTime
|
||||
if ys.IsRAM == MASTERACC {
|
||||
ys.AccessToken = ac.AccessToken
|
||||
ys.ExpireTime = ac.ExpireTime
|
||||
} else {
|
||||
ys.AccessToken = ac.AccessToken
|
||||
ac, err = ys.RAMGetAccessToken(ys.AccountID)
|
||||
if err != nil {
|
||||
ys.AccessToken = ""
|
||||
return err
|
||||
}
|
||||
ys.AccessToken = ac.AccessToken
|
||||
ys.ExpireTime = ac.ExpireTime
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// RAMGetAccessToken 获取B模式子账户accessToken
|
||||
func (ys *Ys) RAMGetAccessToken(accountID string) (ac *AccessToken, err error) {
|
||||
params := make(map[string]interface{})
|
||||
params["accountId"] = accountID
|
||||
params["accessToken"] = ys.AccessToken
|
||||
ac = &AccessToken{}
|
||||
_, err = ys.requset("POST", RAMTOKENGET, params, ac)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
log.Println(*ac)
|
||||
return ac, nil
|
||||
}
|
||||
|
||||
func (ys *Ys) requset(method, url string, params map[string]interface{}, data interface{}) (status *Status, err error) {
|
||||
defer func() {
|
||||
if Rerr := recover(); Rerr != nil {
|
||||
@@ -79,7 +111,7 @@ func (ys *Ys) requset(method, url string, params map[string]interface{}, data in
|
||||
|
||||
func (ys *Ys) authorizeRequset(method, url string, params map[string]interface{}, data interface{}) (status *Status, err error) {
|
||||
exTime := time.Unix(ys.ExpireTime/1000, 0)
|
||||
if exTime.Unix() < time.Now().Unix() || ys.AccessToken == "" {
|
||||
if exTime.Unix() < time.Now().Unix() {
|
||||
ys.GetAccessToken()
|
||||
}
|
||||
defer func() {
|
||||
@@ -88,6 +120,7 @@ func (ys *Ys) authorizeRequset(method, url string, params map[string]interface{}
|
||||
return
|
||||
}
|
||||
}()
|
||||
log.Println("初始化token", *ys)
|
||||
params["accessToken"] = ys.AccessToken
|
||||
status, err = ys.requset(method, url, params, data)
|
||||
return
|
||||
|
||||
18
pkg/ys/ys_test.go
Normal file
18
pkg/ys/ys_test.go
Normal file
@@ -0,0 +1,18 @@
|
||||
package ys
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestYs_GetDeviceList(t *testing.T) {
|
||||
ys := &Ys{
|
||||
AppKey: "",
|
||||
Secret: "",
|
||||
IsRAM: 0,
|
||||
AccountID: "",
|
||||
}
|
||||
devices, total, err := ys.GetDeviceList(1, 10)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
t.Log(devices)
|
||||
t.Log(total)
|
||||
}
|
||||
Reference in New Issue
Block a user