Skip to main content

telnyx-oauth-go

Implement OAuth 2.0 authentication flows for Telnyx API access. This skill provides Go SDK examples.

Informações da origem

Repositório
team-telnyx/telnyx-toolkit
Última atividade na origem
10 de fevereiro de 2026 às 20:41
Idioma detectado do SKILL.md
inglês
Estrelas
3
Forks
2

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
telnyx-oauth-go
description
Implement OAuth 2.0 authentication flows for Telnyx API access. This skill provides Go SDK examples.
metadata
{"author":"telnyx","product":"oauth","language":"go","generated_by":"telnyx-ext-skills-generator"}
<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. --> # Telnyx Oauth - Go ## Installation ```bash go get github.com/team-telnyx/telnyx-go ``` ## Setup ```go import ( "context" "fmt" "os" "github.com/team-telnyx/telnyx-go" "github.com/team-telnyx/telnyx-go/option" ) client := telnyx.NewClient( option.WithAPIKey(os.Getenv("TELNYX_API_KEY")), ) ``` All examples below assume `client` is already initialized as shown above. ## Authorization server metadata OAuth 2.0 Authorization Server Metadata (RFC 8414) `GET /.well-known/oauth-authorization-server` ```go response, err := client.WellKnown.GetAuthorizationServerMetadata(context.TODO()) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.AuthorizationEndpoint) ``` ## Protected resource metadata OAuth 2.0 Protected Resource Metadata for resource discovery `GET /.well-known/oauth-protected-resource` ```go response, err := client.WellKnown.GetProtectedResourceMetadata(context.TODO()) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.AuthorizationServers) ``` ## OAuth authorization endpoint OAuth 2.0 authorization endpoint for the authorization code flow `GET /oauth/authorize` ```go err := client.OAuth.GetAuthorize(context.TODO(), telnyx.OAuthGetAuthorizeParams{ ClientID: "client_id", RedirectUri: "https://example.com", ResponseType: telnyx.OAuthGetAuthorizeParamsResponseTypeCode, }) if err != nil { panic(err.Error()) } ``` ## List OAuth clients Retrieve a paginated list of OAuth clients for the authenticated user `GET /oauth/clients` ```go page, err := client.OAuthClients.List(context.TODO(), telnyx.OAuthClientListParams{}) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) ``` ## Create OAuth client Create a new OAuth client `POST /oauth/clients` — Required: `name`, `allowed_scopes`, `client_type`, `allowed_grant_types` ```go oauthClient, err := client.OAuthClients.New(context.TODO(), telnyx.OAuthClientNewParams{ AllowedGrantTypes: []string{"client_credentials"}, AllowedScopes: []string{"admin"}, ClientType: telnyx.OAuthClientNewParamsClientTypePublic, Name: "My OAuth client", }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", oauthClient.Data) ``` ## Get OAuth client Retrieve a single OAuth client by ID `GET /oauth/clients/{id}` ```go oauthClient, err := client.OAuthClients.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", oauthClient.Data) ``` ## Update OAuth client Update an existing OAuth client `PUT /oauth/clients/{id}` ```go oauthClient, err := client.OAuthClients.Update( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", telnyx.OAuthClientUpdateParams{}, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", oauthClient.Data) ``` ## Delete OAuth client Delete an OAuth client `DELETE /oauth/clients/{id}` ```go err := client.OAuthClients.Delete(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") if err != nil { panic(err.Error()) } ``` ## Get OAuth consent token Retrieve details about an OAuth consent token `GET /oauth/consent/{consent_token}` ```go oauth, err := client.OAuth.Get(context.TODO(), "consent_token") if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", oauth.Data) ``` ## List OAuth grants Retrieve a paginated list of OAuth grants for the authenticated user `GET /oauth/grants` ```go page, err := client.OAuthGrants.List(context.TODO(), telnyx.OAuthGrantListParams{}) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) ``` ## Get OAuth grant Retrieve a single OAuth grant by ID `GET /oauth/grants/{id}` ```go oauthGrant, err := client.OAuthGrants.Get(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", oauthGrant.Data) ``` ## Revoke OAuth grant Revoke an OAuth grant `DELETE /oauth/grants/{id}` ```go oauthGrant, err := client.OAuthGrants.Delete(context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", oauthGrant.Data) ``` ## Token introspection Introspect an OAuth access token to check its validity and metadata `POST /oauth/introspect` — Required: `token` ```go response, err := client.OAuth.Introspect(context.TODO(), telnyx.OAuthIntrospectParams{ Token: "token", }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.ClientID) ``` ## JSON Web Key Set Retrieve the JSON Web Key Set for token verification `GET /oauth/jwks` ```go response, err := client.OAuth.GetJwks(context.TODO()) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Keys) ``` ## Dynamic client registration Register a new OAuth client dynamically (RFC 7591) `POST /oauth/register` ```go response, err := client.OAuth.Register(context.TODO(), telnyx.OAuthRegisterParams{}) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.ClientID) ``` ## OAuth token endpoint Exchange authorization code, client credentials, or refresh token for access token `POST /oauth/token` — Required: `grant_type` ```go response, err := client.OAuth.Token(context.TODO(), telnyx.OAuthTokenParams{ GrantType: telnyx.OAuthTokenParamsGrantTypeClientCredentials, }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.AccessToken) ```
Ver no GitHub