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 }