Skip to content

DarlingGoose/tremendous

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tremendous Go API Client

Reference Docs:

Setup

client := tremendous.NewClient(http.DefaultClient)
defer client.Close()

Using API Key

client := tremendous.NewClient(http.DefaultClient)
defer client.Close()
apiKeyClient := client.NewClientWithAPIKey("{APIKEY}")
apiKeyClient.ListMembers(context.Background())
Using Oauth
client := tremendous.NewClient(http.DefaultClient)
defer client.Close()

// if enabled and refresh token and client_id, client_secret are provided,
// it will generate a new access_token
autoRefresh := false

/*
	This was done so you can create child oauth config for each sub account you wish to access
*/

oauthClientAccount1 := client.NewClientWithOAuth(tremendous.OauthConfig{
AccessToken:  "account_token1",
}, autoRefresh)


members, err := oauthClientAccount1.ListMembers(context.Background())

autoRefresh := true
oauthClientAccount2 := client.NewClientWithOAuth(tremendous.OauthConfig{
ClientId:     "test1",
ClientSecret: "test1",
RefreshToken: "refresh_token"
AccessToken:  "accountToken2",
}, autoRefresh)

go func() {
    for oauth := range oauthClientAccount2.OauthRefresh() {
    // this channel will emit changes when we generate a new refresh token
    // should be encrypted and stored somewhere
    // save refresh token else were since refresh token can only be used once
    println(oauth.RefreshToken)
    }
}()

members, err =oauthClientAccount2.ListMembers(context.Background())
client := tremendous.NewClient(http.DefaultClient)
defer client.Close()

// Should retrieve CODE from url param on tremendous redirect
token, err := client.SendOauthRequest(ctx, &AccessTokenRequest{
    ClientId:     c.clientID,
    ClientSecret: c.clientSecret,
    GrantType:    GrantTypeAuthorizationCode,
    RedirectUri:"{OAUTH_URI}",
    Code: "{CODE}"
})

// persist token
// create oauth client using client.NewClientWithOAuth()


func handle(w http.ResponseWriter, r *http.Request) {
  client := tremendous.NewClient(http.DefaultClient)
  defer client.Close()
  
  // Should retrieve CODE from url param on tremendous redirect
  token, err := client.SendOauthRequest(ctx, &AccessTokenRequest{
    ClientId:     c.clientID,
    ClientSecret: c.clientSecret,
    GrantType:    GrantTypeAuthorizationCode,
    RedirectUri:  "{OAUTH_URI}",
    Code:         r.URL.Query().Get("code"),
  })
    // persist token
}

About

Basic go implementation for Tremendous

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages