English | 简体中文
Golang version SDK for accessing the fundamental services on the Ao.Space platform.
-
Install using
go getgo get github.com/ao-space/platform-sdk-go/v2
-
Import into your code
import "github.com/ao-space/platform-sdk-go/v2"
Each interface has a corresponding Request structure and a Response structure. For example, the ObtainBoxRegKey interface has corresponding request and response structures named ObtainBoxRegKeyRequest and ObtainBoxRegKeyResponse, respectively.
Below is an example of how to use the SDK for obtaining an access token.
package main
import (
"fmt"
"github.com/ao-space/platform-sdk-go/utils"
"github.com/ao-space/platform-sdk-go/v2"
)
func main() {
// Create a client: specify the Host of the platform's fundamental
// service and optionally set the transport manually
client := platform.NewClientWithHost(platform.AoSpaceDomain, nil)
// Optionally set the request ID for the most recent request
client.SetRequestId("XXXXX")
// Request parameters
input := &platform.ObtainBoxRegKeyRequest{
BoxUUID: "XXXXX",
ServiceIds: []string{"XXXXX"},
}
response, err := client.ObtainBoxRegKey(input)
if err != nil {
panic(err)
}
fmt.Println(utils.ToString(response))
}-
Obtain Box_Reg_Key
- Used to authenticate the identity of the device on the space platform and generate
box_reg_keys.
client = platform.NewClientWithHost("XXXXXX", nil) resp, err := client.ObtainBoxRegKey(&platform.ObtainBoxRegKeyRequest{ BoxUUID: "XXXXX", ServiceIds: []string{"XXXXX"}, }) if err != nil { fmt.Println(err) return } fmt.Println(resp)
- Used to authenticate the identity of the device on the space platform and generate
-
Register Device
- Register AO.space device, and the space platform assigns network client information to it
resp, err := client.RegisterDevice() if err != nil { fmt.Println(err) return } fmt.Println(resp)
-
Delete Device
- Delete the registration information of AO.space device, including user registration information, client registration information, network resources, etc
err := client.DeleteDevice() if err != nil { fmt.Println(err) return }
-
Register User
- Register users and synchronize their binding clients
resp, err := client.RegisterUser(&platform.RegisterUserRequest{ UserID: "XXX", // User ID Subdomain: "XXX", //The subdomain name specified by the user UserType: "XXX", //User type (administrator, member), value: user_admin、user_member ClientUUID: "XXX", //The UUID of the client }) if err != nil { fmt.Println(err) return } fmt.Println(resp)
-
Generate User Domain Name
- Generate the user's subdomain name, and the subdomain name is unique globally
resp, err := client.GenerateUserDomain(&platform.GenerateUserDomainRequest{ EffectiveTime: "XXX", //Validity period, in seconds, up to 7 days }) if err != nil { fmt.Println(err) return } fmt.Println(resp)
-
Modify User Domain Name
- Modify the user's subdomain name, still retaining the user's historical subdomain name
resp, err := client.ModifyUserDomain(&platform.ModifyUserDomainRequest{ UserId: "XXX", Subdomain: "XXX", }) if err != nil { fmt.Println(err) return } fmt.Println(resp)
-
Delete User
- Delete user registration information, including client registration information, etc
err := client.DeleteUser("your userId") if err != nil { fmt.Println(err) return }
-
Register Client
- Register Client
resp, err := client.RegisterClient(&platform.RegisterClientRequest{ UserId: "XXX", ClientUUID: "XXX", ClientType: "XXX", //客户端类型(绑定、扫码授权),取值:client_bind、client_auth }) if err != nil { fmt.Println(err) return } fmt.Println(resp)
-
Delete Client
- Delete client registration information
err := client.DeleteClient(&platform.DeleteClientRequest{ UserId: "XXX", ClientUUID: "XXX", }) if err != nil { fmt.Println(err) return }
-
Space Platform Migration
- Used to migrate AO.space device data to the new space platform
resp, err := client.SpacePlatformMigration(&platform.SpacePlatformMigrationRequest{ NetworkClientId: "XXX", UserInfos: []platform.UserMigrationInfo{ platform.UserMigrationInfo{ UserId: "XXX", UserDomain: "XXX", UserType: "XXX", ClientInfos: []platform.ClientInfo{ platform.ClientInfo{ ClientUUID: "XXX", ClientType: "XXX", }, }, }, }, }) if err != nil { fmt.Println(err) return }
-
Space Platform Migration Out
- Used for domain name redirection on old space platforms
resp, err := client.SpacePlatformMigrationOut(&platform.SpacePlatformMigrationOutRequest{ UserDomainRouteInfos: []platform.UserDomainRouteInfo{ platform.UserDomainRouteInfo{ UserId: "XXX", UserDomainRedirect: "XXX", //Redirected user domain name }, }})