telnyx-oauth-javascript

📁 team-telnyx/telnyx-ext-agent-skills 📅 3 days ago
3
总安装量
3
周安装量
#61484
全站排名
安装命令
npx skills add https://github.com/team-telnyx/telnyx-ext-agent-skills --skill telnyx-oauth-javascript

Agent 安装分布

opencode 3
gemini-cli 3
antigravity 3
claude-code 3
windsurf 3
github-copilot 3

Skill 文档

Telnyx Oauth – JavaScript

Installation

npm install telnyx

Setup

import Telnyx from 'telnyx';

const client = new Telnyx({
  apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});

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

const response = await client.wellKnown.retrieveAuthorizationServerMetadata();

console.log(response.authorization_endpoint);

Protected resource metadata

OAuth 2.0 Protected Resource Metadata for resource discovery

GET /.well-known/oauth-protected-resource

const response = await client.wellKnown.retrieveProtectedResourceMetadata();

console.log(response.authorization_servers);

OAuth authorization endpoint

OAuth 2.0 authorization endpoint for the authorization code flow

GET /oauth/authorize

await client.oauth.retrieveAuthorize({
  client_id: 'client_id',
  redirect_uri: 'https://example.com',
  response_type: 'code',
});

List OAuth clients

Retrieve a paginated list of OAuth clients for the authenticated user

GET /oauth/clients

// Automatically fetches more pages as needed.
for await (const oauthClient of client.oauthClients.list()) {
  console.log(oauthClient.client_id);
}

Create OAuth client

Create a new OAuth client

POST /oauth/clients — Required: name, allowed_scopes, client_type, allowed_grant_types

Optional: logo_uri (uri), policy_uri (uri), redirect_uris (array[string]), require_pkce (boolean), tos_uri (uri)

const oauthClient = await client.oauthClients.create({
  allowed_grant_types: ['client_credentials'],
  allowed_scopes: ['admin'],
  client_type: 'public',
  name: 'My OAuth client',
});

console.log(oauthClient.data);

Get OAuth client

Retrieve a single OAuth client by ID

GET /oauth/clients/{id}

const oauthClient = await client.oauthClients.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

console.log(oauthClient.data);

Update OAuth client

Update an existing OAuth client

PUT /oauth/clients/{id}

Optional: allowed_grant_types (array[string]), allowed_scopes (array[string]), logo_uri (uri), name (string), policy_uri (uri), redirect_uris (array[string]), require_pkce (boolean), tos_uri (uri)

const oauthClient = await client.oauthClients.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

console.log(oauthClient.data);

Delete OAuth client

Delete an OAuth client

DELETE /oauth/clients/{id}

await client.oauthClients.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

Get OAuth consent token

Retrieve details about an OAuth consent token

GET /oauth/consent/{consent_token}

const oauth = await client.oauth.retrieve('consent_token');

console.log(oauth.data);

List OAuth grants

Retrieve a paginated list of OAuth grants for the authenticated user

GET /oauth/grants

// Automatically fetches more pages as needed.
for await (const oauthGrant of client.oauthGrants.list()) {
  console.log(oauthGrant.id);
}

Get OAuth grant

Retrieve a single OAuth grant by ID

GET /oauth/grants/{id}

const oauthGrant = await client.oauthGrants.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

console.log(oauthGrant.data);

Revoke OAuth grant

Revoke an OAuth grant

DELETE /oauth/grants/{id}

const oauthGrant = await client.oauthGrants.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

console.log(oauthGrant.data);

Token introspection

Introspect an OAuth access token to check its validity and metadata

POST /oauth/introspect — Required: token

const response = await client.oauth.introspect({ token: 'token' });

console.log(response.client_id);

JSON Web Key Set

Retrieve the JSON Web Key Set for token verification

GET /oauth/jwks

const response = await client.oauth.retrieveJwks();

console.log(response.keys);

Dynamic client registration

Register a new OAuth client dynamically (RFC 7591)

POST /oauth/register

Optional: client_name (string), grant_types (array[string]), logo_uri (uri), policy_uri (uri), redirect_uris (array[string]), response_types (array[string]), scope (string), token_endpoint_auth_method (enum), tos_uri (uri)

const response = await client.oauth.register();

console.log(response.client_id);

OAuth token endpoint

Exchange authorization code, client credentials, or refresh token for access token

POST /oauth/token — Required: grant_type

Optional: client_id (string), client_secret (string), code (string), code_verifier (string), redirect_uri (uri), refresh_token (string), scope (string)

const response = await client.oauth.token({ grant_type: 'client_credentials' });

console.log(response.access_token);