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
|
sip: tcp:5060
|
||||||
# 萤石摄像头token
|
# 萤石摄像头token
|
||||||
ys:
|
ys:
|
||||||
appKey: 2db7f777fa6f44bdaf1c20b7f065887c
|
appKey: ""
|
||||||
secret: bf59b1a2168da4b443473efe9b1cf1b0
|
secret: ""
|
||||||
|
|
||||||
log:
|
log:
|
||||||
# 日志等级, trace, debug, info, warn, error, fatal
|
# 日志等级, trace, debug, info, warn, error, fatal
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ func (ys *Ys) GetDeviceList(pageNum, pageSize int) (devices []Device, total int6
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
var page Page
|
var page = Page{}
|
||||||
err = tool.InterfaceToStruct(status.Page, &page)
|
err = tool.InterfaceToStruct(status.Page, &page)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
|
|||||||
41
pkg/ys/ys.go
41
pkg/ys/ys.go
@@ -5,19 +5,25 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
MASTERACC = 0 //主账号
|
||||||
|
RAMACC = 1 //子账号
|
||||||
//[用户]获取accessToken
|
//[用户]获取accessToken
|
||||||
ACCESSTOKEN = "https://open.ys7.com/api/lapp/token/get"
|
ACCESSTOKEN = "https://open.ys7.com/api/lapp/token/get"
|
||||||
|
RAMTOKENGET = "https://open.ys7.com/api/lapp/ram/token/get" //获取子账户AccessToken
|
||||||
)
|
)
|
||||||
|
|
||||||
type Ys struct {
|
type Ys struct {
|
||||||
AppKey string
|
AppKey string
|
||||||
Secret string
|
Secret string
|
||||||
|
IsRAM int
|
||||||
|
AccountID string
|
||||||
AccessToken string
|
AccessToken string
|
||||||
ExpireTime int64
|
ExpireTime int64
|
||||||
}
|
}
|
||||||
@@ -27,15 +33,41 @@ func (ys *Ys) GetAccessToken() error {
|
|||||||
params["appKey"] = ys.AppKey
|
params["appKey"] = ys.AppKey
|
||||||
params["appSecret"] = ys.Secret
|
params["appSecret"] = ys.Secret
|
||||||
ac := &AccessToken{}
|
ac := &AccessToken{}
|
||||||
_, err := ys.requset("POST", ACCESSTOKEN, params, &ac)
|
_, err := ys.requset("POST", ACCESSTOKEN, params, ac)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
ys.AccessToken = ac.AccessToken
|
if ys.IsRAM == MASTERACC {
|
||||||
ys.ExpireTime = ac.ExpireTime
|
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
|
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) {
|
func (ys *Ys) requset(method, url string, params map[string]interface{}, data interface{}) (status *Status, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
if Rerr := recover(); Rerr != nil {
|
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) {
|
func (ys *Ys) authorizeRequset(method, url string, params map[string]interface{}, data interface{}) (status *Status, err error) {
|
||||||
exTime := time.Unix(ys.ExpireTime/1000, 0)
|
exTime := time.Unix(ys.ExpireTime/1000, 0)
|
||||||
if exTime.Unix() < time.Now().Unix() || ys.AccessToken == "" {
|
if exTime.Unix() < time.Now().Unix() {
|
||||||
ys.GetAccessToken()
|
ys.GetAccessToken()
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
@@ -88,6 +120,7 @@ func (ys *Ys) authorizeRequset(method, url string, params map[string]interface{}
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
log.Println("初始化token", *ys)
|
||||||
params["accessToken"] = ys.AccessToken
|
params["accessToken"] = ys.AccessToken
|
||||||
status, err = ys.requset(method, url, params, data)
|
status, err = ys.requset(method, url, params, data)
|
||||||
return
|
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