github.com/grokify/go-ringcentral-client@v0.3.31/engagevoice/v1/examples/generate_api_token/main.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"log"
     6  
     7  	"github.com/grokify/go-ringcentral-client/engagevoice/v1/util/lite"
     8  	"github.com/grokify/mogo/fmt/fmtutil"
     9  	"github.com/jessevdk/go-flags"
    10  )
    11  
    12  type Options struct {
    13  	ServerURL string `short:"s" long:"serverurl" description:"ServerURL"`
    14  	Username  string `short:"u" long:"username" description:"Username"`
    15  	Password  string `short:"p" long:"password" description:"Password"`
    16  	Token     string `short:"t" long:"token" description:"Token"`
    17  }
    18  
    19  func main() {
    20  	opts := Options{}
    21  	_, err := flags.Parse(&opts)
    22  	if err != nil {
    23  		log.Fatal(err)
    24  	}
    25  
    26  	if len(opts.Username) > 0 && len(opts.Password) > 0 {
    27  		apiToken, userInfo, err := lite.GenerateAPIToken(opts.Username, opts.Password)
    28  		if err != nil {
    29  			log.Fatal(err)
    30  		}
    31  		fmt.Printf("API_TOKEN: [%v]\n", apiToken)
    32  		fmt.Printf("ACCOUNT_ID: [%v]\n", userInfo.Accounts[0].AccountID)
    33  	}
    34  
    35  	tokens, err := lite.ListTokens(opts.ServerURL, opts.Token)
    36  	if err != nil {
    37  		log.Fatal(err)
    38  	}
    39  	fmtutil.PrintJSON(tokens)
    40  
    41  	fmt.Println("DONE")
    42  }