ringcentral

package
v0.6.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 9, 2021 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EnvServerURL    = "RINGCENTRAL_SERVER_URL"
	EnvClientID     = "RINGCENTRAL_CLIENT_ID"
	EnvClientSecret = "RINGCENTRAL_CLIENT_SECRET"
	EnvAppName      = "RINGCENTRAL_APP_NAME"
	EnvAppVersion   = "RINGCENTRAL_APP_VERSION"
	EnvRedirectURL  = "RINGCENTRAL_OAUTH_REDIRECT_URL"
	EnvUsername     = "RINGCENTRAL_USERNAME"
	EnvExtension    = "RINGCENTRAL_EXTENSION"
	EnvPassword     = "RINGCENTRAL_PASSWORD"
)
View Source
const (
	AuthURL         = "https://platform.ringcentral.com/restapi/oauth/authorize"
	TokenURL        = "https://platform.ringcentral.com/restapi/oauth/token"
	AuthURLSandbox  = "https://platform.devtest.ringcentral.com/restapi/oauth/authorize"
	TokenURLSandbox = "https://platform.devtest.ringcentral.com/restapi/oauth/token"
)
View Source
const (
	ServerURLProduction  = "https://platform.ringcentral.com"
	ServerURLSandbox     = "https://platform.devtest.ringcentral.com"
	ProductionHostname   = "platform.ringcentral.com"
	SandboxHostname      = "platform.devtest.ringcentral.com"
	AuthURLFormat        = "https://%s/restapi/oauth/authorize"
	TokenURLFormat       = "https://%s/restapi/oauth/token"
	AuthURLPart          = "restapi/oauth/authorize"
	TokenURLPart         = "restapi/oauth/token"
	MeURL                = "/restapi/v1.0/account/~/extension/~"
	RestAPI1dot0Fragment = "restapi/v1.0"
)

Variables

This section is empty.

Functions

func BuildURL

func BuildURL(serverURL, urlFragment string, addRestAPI bool, queryValues url.Values) (string, error)

func NewClientPassword

NewClientPassword uses dedicated password grant handling.

func NewClientPasswordSimple

func NewClientPasswordSimple(app credentials.ApplicationCredentials, user credentials.PasswordCredentials) (*http.Client, error)

NewClientPasswordSimple uses OAuth2 package password grant handling.

func NewEndpoint

func NewEndpoint(hostnameOrBasePath string) oauth2.Endpoint

func NewHttpClientEnvFlexStatic

func NewHttpClientEnvFlexStatic(envPrefix string) (*http.Client, error)

func NewTokenCli added in v0.4.1

func NewTokenCli(creds credentials.Credentials, state string) (token *oauth2.Token, err error)

func PasswordCredentialsToHash

func PasswordCredentialsToHash(pwdCreds PasswordCredentials, salt []byte) string

func RetrieveToken

func RetrieveToken(cfg oauth2.Config, params url.Values) (*oauth2.Token, error)

func UsernameExtensionPasswordToHash

func UsernameExtensionPasswordToHash(username, extension, password string, salt []byte) string

func UsernameExtensionPasswordToString

func UsernameExtensionPasswordToString(username, extension, password string) string

Types

type ApplicationCredentials

type ApplicationCredentials struct {
	ApplicationID   string `json:"applicationID,omitempty"`
	ClientID        string `json:"clientID,omitempty"`
	ClientSecret    string `json:"clientSecret,omitempty"`
	RedirectURL     string `json:"redirectURL,omitempty"`
	ServerURL       string `json:"serverURL,omitempty"`
	AppName         string `json:"applicationName,omitempty"`
	AppVersion      string `json:"applicationVersion,omitempty"`
	OAuthEndpointID string `json:"oauthEndpointID,omitempty"`
	AccessTokenTTL  int64  `json:"accessTokenTTL,omitempty"`
	RefreshTokenTTL int64  `json:"refreshTokenTTL,omitempty"`
	GrantType       string `json:"grantType,omitempty"`
}

func NewApplicationCredentialsEnv

func NewApplicationCredentialsEnv() ApplicationCredentials

func (*ApplicationCredentials) AppNameAndVersion

func (ac *ApplicationCredentials) AppNameAndVersion() string

func (*ApplicationCredentials) AuthCodeURL added in v0.4.1

func (app *ApplicationCredentials) AuthCodeURL(state string, opts ...oauth2.AuthCodeOption) string

func (*ApplicationCredentials) Config

func (app *ApplicationCredentials) Config() oauth2.Config

func (*ApplicationCredentials) Exchange

func (app *ApplicationCredentials) Exchange(code string) (*RcToken, error)

func (*ApplicationCredentials) InflateURL added in v0.4.3

func (app *ApplicationCredentials) InflateURL(apiUrlPath string) string

func (*ApplicationCredentials) IsGrantType added in v0.4.1

func (app *ApplicationCredentials) IsGrantType(grantType string) bool

type ClientUtil

type ClientUtil struct {
	Client    *http.Client `json:"-"`
	ServerURL string
	User      RingCentralExtensionInfo `json:"user,omitempty"`
}

ClientUtil is a client library to retrieve user info from the Facebook API.

func NewClientUtil

func NewClientUtil(client *http.Client) ClientUtil

func (*ClientUtil) GetSCIMUser

func (apiutil *ClientUtil) GetSCIMUser() (scim.User, error)

func (*ClientUtil) GetUserinfo

func (cu *ClientUtil) GetUserinfo() (RingCentralExtensionInfo, error)

GetUserinfo retrieves the userinfo from the https://graph.facebook.com/v2.9/{user-id} endpoint.

func (*ClientUtil) SetClient

func (cu *ClientUtil) SetClient(client *http.Client)

type PasswordCredentials

type PasswordCredentials struct {
	GrantType            string `url:"grant_type"`
	AccessTokenTTL       int64  `url:"access_token_ttl"`
	RefreshTokenTTL      int64  `url:"refresh_token_ttl"`
	Username             string `json:"username" url:"username"`
	Extension            string `json:"extension" url:"extension"`
	Password             string `json:"password" url:"password"`
	EndpointId           string `url:"endpoint_id"`
	EngageVoiceAccountId int64  `json:"engageVoiceAccountId"`
}

func NewPasswordCredentialsEnv

func NewPasswordCredentialsEnv() PasswordCredentials

func (*PasswordCredentials) URLValues

func (pw *PasswordCredentials) URLValues() url.Values

func (*PasswordCredentials) UsernameSimple

func (uc *PasswordCredentials) UsernameSimple() string

type RcToken

type RcToken struct {
	AccessToken           string    `json:"access_token,omitempty"`
	TokenType             string    `json:"token_type,omitempty"`
	Scope                 string    `json:"scope,omitempty"`
	ExpiresIn             int64     `json:"expires_in,omitempty"`
	RefreshToken          string    `json:"refresh_token,omitempty"`
	RefreshTokenExpiresIn int64     `json:"refresh_token_expires_in,omitempty"`
	OwnerID               string    `json:"owner_id,omitempty"`
	EndpointID            string    `json:"endpoint_id,omitempty"`
	Expiry                time.Time `json:"expiry,omitempty"`
	RefreshTokenExpiry    time.Time `json:"refresh_token_expiry,omitempty"`
	// contains filtered or unexported fields
}

func RetrieveRcToken

func RetrieveRcToken(cfg oauth2.Config, params url.Values) (*RcToken, error)

func (*RcToken) Inflate

func (rcTok *RcToken) Inflate() error

func (*RcToken) OAuth2Token

func (rcTok *RcToken) OAuth2Token() (*oauth2.Token, error)

type RingCentralAccount

type RingCentralAccount struct {
	URI string `json:"uri,omitempty"`
	ID  string `json:"id,omitempty"`
}

type RingCentralContact

type RingCentralContact struct {
	FirstName string `json:"firstName,omitempty"`
	LastName  string `json:"lastName,omitempty"`
	Email     string `json:"email,omitempty"`
}

type RingCentralExtensionInfo

type RingCentralExtensionInfo struct {
	ID              int64              `json:"id,omitempty"`
	ExtensionNumber string             `json:"extensionNumber,omitempty"`
	Contact         RingCentralContact `json:"contact,omitempty"`
	Name            string             `json:"name,omitempty"`
	Account         RingCentralAccount `json:"account,omitempty"`
}

Directories

Path Synopsis
examples

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL