OAuthService
Intermediario OAuth del nucleo. La extension pide ACCIONES DECLARADAS por el proveedor (no hay peticiones libres); el nucleo ejecuta la
llamada con el token del usuario correcto, aplicando el grupo de scopes concedido, cuotas, auditoria y limites de tamano. Requiere el
permiso OAUTH_ACCOUNT:<proveedor>:<grupo> (grupo de la accion). Codigos de error: ver OAuthError.
Firma
export interface OAuthService {
accounts(provider: string): Promise<OAuthAccountInfo[]>;
call(provider: string, action: string, params?: Record<string, unknown>, options?: { accountId?: string; principal?: "user" | "organizer" | "service"; }): Promise<{ status: number; data: unknown; }>;
principals(provider: string): Promise<{ user: number; organizer: boolean; service: boolean; mode: string; accounts: { organizerEmail: string; impersonateUser: string; }; bot?: { configured: boolean; guilds: number; moderation: boolean; }; }>;
}Miembros (3)
| Nombre | Tipo | Descripción |
|---|---|---|
| accounts | accounts(provider: string): Promise<OAuthAccountInfo[]> | Cuentas del usuario actual para el proveedor (sin tokens). |
| call | call(provider: string, action: string, params?: Record<string, unknown>, options?: { accountId?: string; principal?: "user" | "organizer" | "service"; }): Promise<{ status: number; data: unknown; }> | Ejecuta una accion del proveedor. |
| principals | principals(provider: string): Promise<{ user: number; organizer: boolean; service: boolean; mode: string; accounts: { organizerEmail: string; impersonateUser: string; }; bot?: { configured: boolean; guilds: number; moderation: boolean; }; }> | Identidades disponibles para el proveedor: cuentas vinculadas del usuario y, si el dominio las configuro, las compartidas (organizador / cuenta
de servicio). |
Ejemplos
const [acc] = await ctx.services.oauth.accounts("google");
const r = await ctx.services.oauth.call("google", "calendar.events.list", { calendarId: "primary", timeMin: new Date().toISOString() }, { accountId: acc.id });
return r.data.items;Usado en / Referenciado por
Referencia a
Fuente: bloomx-extensions/_shared/sdk/ctx.d.ts:578 · ctx.d.ts