Go

The Go library can be used by importing the flux package into your project.

Installation

To install the library, start by downloading the flux.zip file from the panel. Then, extract the contents of the zip file into the vendor directory of your project.

The file structure should look like this:

|- your-project
|  |- vendor
|  |  |- flux
|  |  |  |- flux.go
|  |  |  |- go.mod
|  ...

Initialize

To initialize the Flux SDK, call the Init function with your application ID.

flux := flux.Init("your-application-id")

Authenticate

To authenticate a user, call the Authenticate method with the user’s license key and an optional hardware ID.

auth, err := flux.Authenticate(license, hwid)
if err != nil {
	fmt.Println("Error:", err)
	return
}
fmt.Println("Authenticated:", auth)

Get Field

To get a field from the authenticated response, call the GetField method with the field name and its data type.

expiresAt, err := flux.GetField("expiresAt", "int")

Get Variable

To get a variable from the server, call the GetVariable method with the variable name and its data type.

str, err := flux.GetVariable("variable-name", "string")

Download Variable

To download a variable from the server, call the DownloadVariable method with the variable name.

data, err := flux.DownloadVariable("file")
if err != nil {
	fmt.Println("Error:", err)
	return
}

err = ioutil.WriteFile("file.bin", data, 0644)
if err != nil {
	fmt.Println("Error:", err)
	return
}

Example

Here’s a complete example using the Flux SDK.

package main

import (
	"flux"
	"fmt"
	"io/ioutil"
)

func main() {
	flux := flux.Init("your-application-id")

    // Get an unauthenticated variable
	welcomeStr, err := flux.GetVariable("welcome-str", "string")
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	fmt.Println(welcomeStr)

	var license string
	fmt.Print("Enter license: ")
	fmt.Scan(&license)

	auth, err := flux.Authenticate(license, get_hwid())
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	expiresAt, err := flux.GetField("expiresAt", "int")
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	fmt.Println("Expires:", expiresAt)

    // Get an authenticated variable
	str, err := flux.GetVariable("secret", "string")
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	fmt.Println("Authenticated Variable:", str)

	data, err := flux.DownloadVariable("file")
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	err = ioutil.WriteFile("file.bin", data, 0644)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
}