Возвращает информацию о пользователе по его идентфикатору или email.
import { getGcUserData, GetGcUserDataParams} from '@getcourse/sdk'
// Параметры
async function getGcUserData(
ctx: app.Ctx,
params: GetGcUserDataParams
): Promise<GcUserGetInfoResponse|null>
type GetGcUserDataParams = ({ id: number } | { email: string }) & {
blocks?: Array<'custom' | 'groups' | 'telegram' | 'vk'>, // массив допольнительных блоков
blockParams?: { vk?: { returnUrl: string } } // параметры блоков
}
// Результат
interface GcUserGetInfoResponse {
user: GcUserInfo
telegram?: TelegramData
vk?: VkData
custom?: Record<string, { name: string; value: string }>
groups?: Array<{
id: number // 2650205
title: string | null // 'Имя группы'
}>
}
interface GcUserInfo {
id: number
deleted: 0 | 1
deleted_at: string | null
profile_image: string | '' | null
status: 'active' | 'deactivated' | 'banned' | 'in_base' | 'invited'
created_at: string
profile_id: number
activated_at: string
first_name: string
last_name: string
country: string | null
city: string | null
phone: string | null
phone_standart: string | null
phone_confirmed: 0 | 1
comment: string
subscribe_status: 'all' | 'no_mailings' | 'disabled'
timezone_offset: number
birthday: string | null // yyyy-mm-dd
language: string | '' | null // ru
gender: 'male' | 'female' | '' | null
email: string
geo_area_id: number | null
role: 'user' | 'teacher' | 'admin'
type: string // 'admin'
is_email_confirmed: 0 | 1
partner_user_id: number | null
telegram_ids?: number[]
}
type TelegramData = TelegramEnabledData | TelegramDisabledData
interface TelegramEnabledData {
is_enabled: true
chat: {
id: number // 33313310
bot_id: number // 37073
user_id: number // 92401054
chat_id: number // 297286215
created_at: GcDateString // '2022-07-05 17:22:32'
updated_at: GcDateString // '2022-07-05 17:22:32'
deleted: number // 0
deleted_at: GcDateString | null
params: unknown | null
is_external: boolean
}
}
interface TelegramDisabledData {
is_enabled: false
start_link: string // ссылка для пользователя для подключения телеграма
}
interface VkData {
is_enabled: boolean
link: string | ''
vk_user_id: string | ''
error: string | ''
}
import { getGcUserData } from '@getcourse/sdk'
let userInfo = await getGcUserData(ctx, {id: 302863444})
В результате мы получим только блок user
с основными полями пользователя.
import { getGcUserData } from '@getcourse/sdk'
let userInfo = await getGcUserData(ctx, {email: 'user@chatium.ru'})
Результат будет аналогичен предыдущему примеру.
import { getGcUserData } from '@getcourse/sdk'
let userInfo = await getGcUserData(ctx, {email: 'user@chatium.ru', blocks: ['custom']})
Помимо основного блока user
в ответе будет присутствовать блок custom
со списком "кастомных" полей пользователя и их значений.
import { getGcUserData } from '@getcourse/sdk'
let userInfo = await getGcUserData(ctx, {email: 'user@chatium.ru', blocks: ['telegram', 'vk']})
Помимо основного блока user
в ответе будет присутствовать блоки telegram
и vk
с информаций о подключённых Telegram и VK
Обратите внимание! Возвращаются только "основные" боты.
Для получения чатов дополнительных ботов необходимо использовать соответствующие методы.