Skip to contents

High-level 'Telegram' 'MTProto' client. Create one with TelegramClient$new(session, api_id, api_hash), then $start() (interactive login) or $connect() together with $send_code_request() and $sign_in() to authenticate. Once connected it exposes the messaging, channel, media and download methods used throughout the package documentation.

Value

An R6 generator object of class TelegramClient.

Details

This is an R6 class. Typical usage:


client <- TelegramClient$new("my_session", api_id = 123, api_hash = "...")
client$connect()

Super class

telegramR::TelegramBaseClient -> TelegramClient

Methods

Public methods

Inherited methods


Method takeout()

Usage

TelegramClient$takeout(
  finalize = TRUE,
  contacts = NULL,
  users = NULL,
  chats = NULL,
  megagroups = NULL,
  channels = NULL,
  files = NULL,
  max_file_size = NULL
)


Method end_takeout()

Usage

TelegramClient$end_takeout(success)


Method start()

Usage

TelegramClient$start(
  phone = NULL,
  password = NULL,
  bot_token = NULL,
  force_sms = FALSE,
  code_callback = NULL,
  first_name = "New User",
  last_name = "",
  max_attempts = 3
)


Method sign_in()

Usage

TelegramClient$sign_in(
  phone = NULL,
  code = NULL,
  password = NULL,
  bot_token = NULL,
  phone_code_hash = NULL
)


Method sign_up()

Usage

TelegramClient$sign_up(
  code,
  first_name,
  last_name = "",
  phone = NULL,
  phone_code_hash = NULL
)


Method send_code_request()

Usage

TelegramClient$send_code_request(phone, force_sms = FALSE, retry_count = 0)


Method qr_login()

Usage

TelegramClient$qr_login(ignored_ids = NULL)


Method log_out()

Usage

TelegramClient$log_out()


Method edit_2fa()

Usage

TelegramClient$edit_2fa(
  current_password = NULL,
  new_password = NULL,
  hint = "",
  email = NULL,
  email_code_callback = NULL
)


Method parse_phone_and_hash()

Usage

TelegramClient$parse_phone_and_hash(phone, phone_hash)


Method on_login()

Usage

TelegramClient$on_login(user)


Method start_impl()

Usage

TelegramClient$start_impl(
  phone,
  password,
  bot_token,
  force_sms,
  code_callback,
  first_name,
  last_name,
  max_attempts
)


Method parse_phone()

Usage

TelegramClient$parse_phone(phone)


Method compute_check()

Usage

TelegramClient$compute_check(request, password)


Method compute_digest()

Usage

TelegramClient$compute_digest(algo, password)


Method get_display_name()

Usage

TelegramClient$get_display_name(user)


Method download_profile_photo()

Usage

TelegramClient$download_profile_photo(entity, file = NULL, download_big = TRUE)


Method download_media()

Usage

TelegramClient$download_media(
  message,
  file = NULL,
  thumb = NULL,
  progress_callback = NULL
)


Method download_file()

Usage

TelegramClient$download_file(
  input_location,
  file = NULL,
  part_size_kb = NULL,
  file_size = NULL,
  progress_callback = NULL,
  dc_id = NULL,
  key = NULL,
  iv = NULL,
  msg_data = NULL,
  cdn_redirect = NULL
)


Method .download_file()

Usage

TelegramClient$.download_file(
  input_location,
  file = NULL,
  part_size_kb = NULL,
  file_size = NULL,
  progress_callback = NULL,
  dc_id = NULL,
  key = NULL,
  iv = NULL,
  msg_data = NULL,
  cdn_redirect = NULL
)


Method iter_download()

Usage

TelegramClient$iter_download(
  file,
  offset = 0,
  stride = NULL,
  limit = NULL,
  chunk_size = NULL,
  request_size = MAX_CHUNK_SIZE,
  file_size = NULL,
  dc_id = NULL,
  msg_data = NULL,
  cdn_redirect = NULL
)


Method .iter_download()

Usage

TelegramClient$.iter_download(
  file,
  offset = 0,
  stride = NULL,
  limit = NULL,
  chunk_size = NULL,
  request_size = MAX_CHUNK_SIZE,
  file_size = NULL,
  dc_id = NULL,
  msg_data = NULL,
  cdn_redirect = NULL
)


Method get_thumb()

Usage

TelegramClient$get_thumb(thumbs, thumb)


Method download_cached_photo_size()

Usage

TelegramClient$download_cached_photo_size(size, file)


Method download_photo()

Usage

TelegramClient$download_photo(photo, file, date, thumb, progress_callback)


Method get_kind_and_names()

Usage

TelegramClient$get_kind_and_names(attributes)


Method download_document()

Usage

TelegramClient$download_document(
  document,
  file,
  date,
  thumb,
  progress_callback,
  msg_data
)


Method download_contact()

Usage

TelegramClient$download_contact(mm_contact, file)


Method download_web_document()

Usage

TelegramClient$download_web_document(web, file, progress_callback)


Method get_proper_filename()

Usage

TelegramClient$get_proper_filename(
  file,
  kind,
  extension,
  date = NULL,
  possible_names = NULL
)


Method iter_dialogs()

Usage

TelegramClient$iter_dialogs(
  limit = NULL,
  offset_date = NULL,
  offset_id = 0,
  offset_peer = InputPeerEmpty$new(),
  ignore_pinned = FALSE,
  ignore_migrated = FALSE,
  folder = NULL,
  archived = NULL
)


Method get_dialogs()

Usage

TelegramClient$get_dialogs(
  limit = NULL,
  offset_date = NULL,
  offset_id = 0,
  offset_peer = InputPeerEmpty$new(),
  ignore_pinned = FALSE,
  ignore_migrated = FALSE,
  folder = NULL,
  archived = NULL
)


Method iter_drafts()

Usage

TelegramClient$iter_drafts(entity = NULL)


Method get_drafts()

Usage

TelegramClient$get_drafts(entity = NULL)


Method edit_folder()

Usage

TelegramClient$edit_folder(entity = NULL, folder = NULL, unpack = NULL)


Method delete_dialog()

Usage

TelegramClient$delete_dialog(entity, revoke = FALSE)


Method conversation()

Usage

TelegramClient$conversation(
  entity,
  timeout = 60,
  total_timeout = NULL,
  max_messages = 100,
  exclusive = TRUE,
  replies_are_responses = TRUE
)


Method iter_participants()

Usage

TelegramClient$iter_participants(
  entity,
  limit = NULL,
  search = "",
  filter = NULL,
  aggressive = FALSE
)


Method get_participants()

Usage

TelegramClient$get_participants(...)


Method iter_admin_log()

Usage

TelegramClient$iter_admin_log(
  entity,
  limit = NULL,
  max_id = 0,
  min_id = 0,
  search = NULL,
  admins = NULL,
  join = NULL,
  leave = NULL,
  invite = NULL,
  restrict = NULL,
  unrestrict = NULL,
  ban = NULL,
  unban = NULL,
  promote = NULL,
  demote = NULL,
  info = NULL,
  settings = NULL,
  pinned = NULL,
  edit = NULL,
  delete = NULL,
  group_call = NULL
)


Method get_admin_log()

Usage

TelegramClient$get_admin_log(...)


Method iter_profile_photos()

Usage

TelegramClient$iter_profile_photos(
  entity,
  limit = NULL,
  offset = 0,
  max_id = 0
)


Method get_profile_photos()

Usage

TelegramClient$get_profile_photos(...)


Method action()

Usage

TelegramClient$action(entity, action, delay = 4, auto_cancel = TRUE)


Method edit_admin()

Usage

TelegramClient$edit_admin(
  entity,
  user,
  change_info = NULL,
  post_messages = NULL,
  edit_messages = NULL,
  delete_messages = NULL,
  ban_users = NULL,
  invite_users = NULL,
  pin_messages = NULL,
  add_admins = NULL,
  manage_call = NULL,
  anonymous = NULL,
  is_admin = NULL,
  title = NULL
)


Method edit_permissions()

Usage

TelegramClient$edit_permissions(
  entity,
  user = NULL,
  until_date = NULL,
  view_messages = TRUE,
  send_messages = TRUE,
  send_media = TRUE,
  send_stickers = TRUE,
  send_gifs = TRUE,
  send_games = TRUE,
  send_inline = TRUE,
  embed_link_previews = TRUE,
  send_polls = TRUE,
  change_info = TRUE,
  invite_users = TRUE,
  pin_messages = TRUE
)


Method kick_participant()

Usage

TelegramClient$kick_participant(entity, user)


Method get_permissions()

Usage

TelegramClient$get_permissions(entity, user = NULL)


Method get_stats()

Usage

TelegramClient$get_stats(entity, message = NULL)


Method inline_query()

Usage

TelegramClient$inline_query(
  bot,
  query,
  entity = NULL,
  offset = NULL,
  geo_point = NULL
)


Method invoke_function()

Usage

TelegramClient$invoke_function(function_name, params)


Method custom_inline_results()

Usage

TelegramClient$custom_inline_results(result, peer)


Method iter_messages()

Usage

TelegramClient$iter_messages(
  entity,
  limit = NULL,
  offset_date = NULL,
  offset_id = 0L,
  max_id = 0L,
  min_id = 0L,
  add_offset = 0L,
  search = NULL,
  filter = NULL,
  from_user = NULL,
  wait_time = NULL,
  ids = NULL,
  reverse = FALSE,
  reply_to = NULL,
  scheduled = FALSE
)


Method iter_messages_page()

Usage

TelegramClient$iter_messages_page(
  entity,
  limit = NULL,
  offset_date = NULL,
  offset_id = 0L,
  max_id = 0L,
  min_id = 0L,
  add_offset = 0L,
  search = NULL,
  filter = NULL,
  from_user = NULL,
  wait_time = NULL,
  reverse = FALSE,
  reply_to = NULL,
  scheduled = FALSE
)


Method get_messages()

Usage

TelegramClient$get_messages(...)


Method channels_get_messages()

Usage

TelegramClient$channels_get_messages(channel, ids)


Method collect()

Usage

TelegramClient$collect(it)


Method collect_one()

Usage

TelegramClient$collect_one(it)


Method send_message()

Usage

TelegramClient$send_message(
  entity,
  message = "",
  reply_to = NULL,
  attributes = NULL,
  parse_mode = NULL,
  formatting_entities = NULL,
  link_preview = TRUE,
  file = NULL,
  thumb = NULL,
  force_document = FALSE,
  clear_draft = FALSE,
  buttons = NULL,
  silent = NULL,
  background = NULL,
  supports_streaming = FALSE,
  schedule = NULL,
  comment_to = NULL,
  nosound_video = NULL,
  send_as = NULL,
  message_effect_id = NULL
)


Method forward_messages()

Usage

TelegramClient$forward_messages(
  entity,
  messages,
  from_peer = NULL,
  background = NULL,
  with_my_score = NULL,
  silent = NULL,
  as_album = NULL,
  schedule = NULL,
  drop_author = NULL,
  drop_media_captions = NULL
)


Method edit_message()

Usage

TelegramClient$edit_message(
  entity,
  message = NULL,
  text = NULL,
  parse_mode = NULL,
  attributes = NULL,
  formatting_entities = NULL,
  link_preview = TRUE,
  file = NULL,
  thumb = NULL,
  force_document = FALSE,
  buttons = NULL,
  supports_streaming = FALSE,
  schedule = NULL
)


Method delete_messages()

Usage

TelegramClient$delete_messages(entity, message_ids, revoke = TRUE)


Method send_read_acknowledge()

Usage

TelegramClient$send_read_acknowledge(
  entity,
  message = NULL,
  max_id = NULL,
  clear_mentions = FALSE,
  clear_reactions = FALSE
)


Method pin_message()

Usage

TelegramClient$pin_message(entity, message, notify = FALSE, pm_oneside = FALSE)


Method unpin_message()

Usage

TelegramClient$unpin_message(entity, message = NULL, notify = FALSE)


Method get_comment_data()

Usage

TelegramClient$get_comment_data(entity, message)


Method pin_internal()

Usage

TelegramClient$pin_internal(
  entity,
  message,
  unpin,
  notify = FALSE,
  pm_oneside = FALSE
)


Method send_file()

Usage

TelegramClient$send_file(
  entity,
  file,
  caption = NULL,
  force_document = FALSE,
  file_size = NULL,
  progress_callback = NULL,
  ...
)


Method upload_file()

Usage

TelegramClient$upload_file(
  file,
  part_size_kb = NULL,
  file_size = NULL,
  progress_callback = NULL,
  ...
)


Method file_to_media()

Usage

TelegramClient$file_to_media(
  file,
  force_document = FALSE,
  file_size = NULL,
  progress_callback = NULL,
  attributes = NULL,
  thumb = NULL,
  allow_cache = TRUE,
  voice_note = FALSE,
  video_note = FALSE,
  supports_streaming = FALSE,
  mime_type = NULL,
  as_image = NULL,
  ttl = NULL,
  nosound_video = NULL
)


Method resize_photo_if_needed()

Usage

TelegramClient$resize_photo_if_needed(
  file,
  is_image,
  width = 2560,
  height = 2560
)


Method is_image()

Usage

TelegramClient$is_image(file)


Method get_appropriated_part_size()

Usage

TelegramClient$get_appropriated_part_size(file_size)


Method invoke()

Usage

TelegramClient$invoke(request)


Method build_reply_markup()

Usage

TelegramClient$build_reply_markup(buttons = NULL, inline_only = FALSE)


Method run_until_disconnected()

Usage

TelegramClient$run_until_disconnected()


Method set_receive_updates()

Usage

TelegramClient$set_receive_updates(receive_updates)


Method on()

Usage

TelegramClient$on(event)


Method add_event_handler()

Usage

TelegramClient$add_event_handler(callback, event = NULL)


Method remove_event_handler()

Usage

TelegramClient$remove_event_handler(callback, event = NULL)


Method list_event_handlers()

Usage

TelegramClient$list_event_handlers()


Method catch_up()

Usage

TelegramClient$catch_up()


Method update_loop()

Usage

TelegramClient$update_loop()


Method preprocess_updates()

Usage

TelegramClient$preprocess_updates(updates, users, chats)


Method keepalive_loop()

Usage

TelegramClient$keepalive_loop()


Method dispatch_update()

Usage

TelegramClient$dispatch_update(update)


Method handle_auto_reconnect()

Usage

TelegramClient$handle_auto_reconnect()


Method set_parse_mode()

Usage

TelegramClient$set_parse_mode(mode)


Method get_parse_mode()

Usage

TelegramClient$get_parse_mode()


Method sanitize_parse_mode()

Usage

TelegramClient$sanitize_parse_mode(mode)


Method parse_message_text()

Usage

TelegramClient$parse_message_text(message, parse_mode = NULL)


Method replace_with_mention()

Usage

TelegramClient$replace_with_mention(entities, i, user)


Method get_response_message()

Usage

TelegramClient$get_response_message(request, result, input_chat)


Method call()

Usage

TelegramClient$call(request, ordered = FALSE, flood_sleep_threshold = NULL)


Method call_internal()

Usage

TelegramClient$call_internal(
  sender,
  request,
  ordered = FALSE,
  flood_sleep_threshold = NULL
)


Method get_me()

Usage

TelegramClient$get_me(input_peer = FALSE)


Method self_id()

Usage

TelegramClient$self_id()


Method is_bot()

Usage

TelegramClient$is_bot()


Method is_user_authorized()

Usage

TelegramClient$is_user_authorized()


Method get_entity()

Usage

TelegramClient$get_entity(entity)


Method get_input_entity()

Usage

TelegramClient$get_input_entity(peer)


Method getInputEntity()

Usage

TelegramClient$getInputEntity(peer)


Method getInputPeer()

Usage

TelegramClient$getInputPeer(peer, allow_self = TRUE, check_hash = TRUE)


Method getInputUser()

Usage

TelegramClient$getInputUser(entity)


Method getInputChannel()

Usage

TelegramClient$getInputChannel(entity)


Method getInputMessage()

Usage

TelegramClient$getInputMessage(message)


Method getInputMedia()

Usage

TelegramClient$getInputMedia(
  media,
  is_photo = FALSE,
  attributes = NULL,
  force_document = FALSE,
  file_size = NULL,
  progress_callback = NULL
)


Method getInputDocument()

Usage

TelegramClient$getInputDocument(document)


Method getInputPhoto()

Usage

TelegramClient$getInputPhoto(photo)


Method getInputChatPhoto()

Usage

TelegramClient$getInputChatPhoto(photo)


Method getInputGroupCall()

Usage

TelegramClient$getInputGroupCall(call)


Method get_peer()

Usage

TelegramClient$get_peer(peer)


Method get_peer_id()

Usage

TelegramClient$get_peer_id(peer, add_mark = TRUE)


Method get_entity_from_string()

Usage

TelegramClient$get_entity_from_string(string)


Method get_input_dialog()

Usage

TelegramClient$get_input_dialog(dialog)


Method get_input_notify()

Usage

TelegramClient$get_input_notify(notify)


Method download_files_parallel()

Usage

TelegramClient$download_files_parallel(
  items,
  output_dir = NULL,
  workers = 4L,
  stagger_ms = 500L
)


Method new()

Usage


Method clone()

The objects of this class are cloneable with this method.

Usage

TelegramClient$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

if (FALSE) { # \dontrun{
client <- TelegramClient$new("my_session", api_id = 123, api_hash = "...")
client$start()
} # }