defmodule MTProto.API.Auth do @moduledoc """ Auth.* See [core.telegram.org/schema](https://core.telegram.org/schema). """ @doc """ Returns information on whether the passed phone number was registered. * `phone` - phone number, international format (ex: `0041760000000`). """ def check_phone(phone) do TL.build("auth.checkPhone", %{phone_number: phone}) end @doc """ Sends an confirmation code message to the specified phone number via SMS. * `phone` - phone number, international format (ex: `0041760000000`). * `sms_type` - message text type. * `0` - message contains a numerical code (Default). * `1` (deprecated) - message contains a link `{app_name}://{code}`. * `5` - message sent via Telegram instead of SMS. * `lang` - code for the language used on a client, ISO 639-1 standard. Default value is `"en"`. """ def send_code(phone, sms_type \\ 0, lang \\ "en") do api_id = Application.get_env(:telegram_tl, :api_id) api_hash = Application.get_env(:telegram_tl, :api_hash) TL.build("auth.sendCode", %{phone_number: phone, sms_type: sms_type, api_id: api_id, api_hash: api_hash, lang_code: lang} ) end # @doc """ # Makes a voice call to the passed phone number. A robot will repeat the confirmation code from a previously sent SMS message. # """ # def send_call(phone_number, phone_code_hash) do # TL.build("auth.sendCall", # %{phone_number: phone_number,phone_code_hash: phone_code_hash} # ) # end # # @doc """ # Registers a validated phone number in the system. # """ # def sign_up(phone_number, phone_code_hash, phone_code, first_name, last_name) do # TL.build("auth.signUp", # %{phone_number: phone_number, # phone_code_hash: phone_code_hash, # phone_code: phone_code, # first_name: first_name, # last_name: last_name}) # end @doc """ Signs in a user with a validated phone number. """ def sign_in(phone_number, phone_code_hash, phone_code) do TL.build("auth.signIn", %{phone_number: phone_number, phone_code_hash: phone_code_hash, phone_code: phone_code}) end @doc """ Logs out the user. """ def log_out do TL.build("auth.logOut", %{}) end # @doc """ # Terminates all user's authorized sessions except for the current one. # """ # def reset_authorizations do # TL.build("auth.resetAuthorizations", %{}) # end # # @doc """ # Saves information that the current user sent SMS-messages with invitations to its unregistered contacts. # """ # def send_invites(phone_numbers, message) do # TL.build("auth.sendInvites", %{phone_numbers: phone_numbers, message: message}) # end # # @doc """ # Returns data for copying authorization to another data-centre. # """ # def export_authorization(dc_id) do # TL.build("auth.exportAuthorization", %{dc_id: dc_id}) # end # # @doc """ # Logs in a user using a key transmitted from his native data-centre. # """ # def import_authorization(user_id, auth_key) do # TL.build("auth.importAuthorization", %{id: user_id, bytes: auth_key}) # end # # @doc """ # Binds a temporary authorization key `temp_auth_key_id` to the permanent # authorization key `perm_auth_key_id`. Each permanent key may only be bound # to one temporary key at a time, binding a new temporary key overwrites # the previous one. # """ # def bind_tmp_auth_key(perm_auth_key_id, nonce, expires_at, encrypted_message) do # TL.build("auth.bindTempAuthKey", # %{perm_auth_key_id: perm_auth_key_id, # nonce: nonce, # expires_at: expires_at, # encrypted_message: encrypted_message}) # end # # @doc """ # Forces sending an SMS message to the specified phone number. # """ # def send_sms(phone_number, phone_code_hash) do # TL.build("auth.sendSms", %{phone_number: phone_number, phone_code_hash: phone_code_hash}) # end end