getGcUserData

Возвращает информацию о пользователе по его идентфикатору или 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 с основными полями пользователя.

Вернуть основную информацию о пользователе по email

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 со списком "кастомных" полей пользователя и их значений.

Вернуть основную информацию о пользователе, плюс информацию о подключённых ботах Telegram и VK

import { getGcUserData } from '@getcourse/sdk'

let userInfo = await getGcUserData(ctx, {email: 'user@chatium.ru', blocks: ['telegram', 'vk']})

Помимо основного блока user в ответе будет присутствовать блоки telegram и vk с информаций о подключённых Telegram и VK

Обратите внимание! Возвращаются только "основные" боты.
Для получения чатов дополнительных ботов необходимо использовать соответствующие методы.

❤️ Made with love on Chatium

ООО "Чатиум"

Информация о компании