Как получить код подтверждения в Tdlib програмно?
я отправляю setTdlibParameters
$tdlib->send([ '@type' => 'setTdlibParameters', 'parameters' => [ 'api_id' => (int)$api_id, 'api_hash' => (string)$api_hash, 'use_test_dc' => false, 'database_directory' => 'tdlib_database', 'files_directory' => 'tdlib/td', 'use_file_database' => false, 'use_chat_info_database' => false, 'use_message_database' => false, 'use_secret_chats' => true, 'system_language_code' => 'en', 'device_model' => php_uname('s'), 'system_version' => php_uname('v'), 'application_version' => '1.6.0', 'enable_storage_optimizer' => false, 'ignore_file_names' => false, 'log_verbosity_level' => 3 ] ]); |
$tdlib->send([ '@type' => 'setTdlibParameters', 'parameters' => [ 'api_id' => (int)$api_id, 'api_hash' => (string)$api_hash, 'use_test_dc' => false, 'database_directory' => 'tdlib_database', 'files_directory' => 'tdlib/td', 'use_file_database' => false, 'use_chat_info_database' => false, 'use_message_database' => false, 'use_secret_chats' => true, 'system_language_code' => 'en', 'device_model' => php_uname('s'), 'system_version' => php_uname('v'), 'application_version' => '1.6.0', 'enable_storage_optimizer' => false, 'ignore_file_names' => false, 'log_verbosity_level' => 3 ] ]);
потом
$tdlib->send([ '@type' => 'checkDatabaseEncryptionKey', 'key' => '', ]); |
$tdlib->send([ '@type' => 'checkDatabaseEncryptionKey', 'key' => '', ]);
статус становится authorizationStateWaitPhoneNumber
отправляю
$tdlib->send([ '@type' => 'setAuthenticationPhoneNumber', 'phone_number' => $phone_number ]); |
$tdlib->send([ '@type' => 'setAuthenticationPhoneNumber', 'phone_number' => $phone_number ]);
и по идее мне должен прийти код в $tdlib->receive если $response['@type'] === 'updateAuthorizationState'
но он не приходит пишется вот так
Array
(
[@type] => updateAuthorizationState
[authorization_state] => Array
(
[@type] => authorizationStateWaitCode
[code_info] => Array
(
[@type] => authenticationCodeInfo
[phone_number] => +********
[type] => Array
(
[@type] => authenticationCodeTypeTelegramMessage
[length] => 5
)
[timeout] => 0
)
)
)
как же его получить кодом?
в сам телеграм мне он приходит
где то читал что должен быть $response['authorization_state']['code_info']['code']; но его не приходит
Дополнительно:
С некоторых пор SMS можно получить только при запросе из мобильного приложения, на десктопе или в собственном клиенте - только сообщение в уже ранее установленный клиент.
Всё из-за нехороших людей, которые пачками спамботов регали.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для получения кода подтверждения в Tdlib программно можно воспользоваться следующими шагами:
1. Установить Tdlib в ваш проект. Для этого можно воспользоваться сборкой Tdlib для вашего языка программирования (например, для PHP можно воспользоваться библиотекой tdlib/tdlib-php).
2. Подключиться к серверу авторизации Tdlib. Для этого необходимо создать объект Tdlib и установить соединение с сервером авторизации.
3. Запросить отправку кода подтверждения. Для этого необходимо вызвать метод sendPhoneNumberVerificationCode, передав в него ваш номер телефона.
Пример кода на PHP:
use td\telegram\TdClient; $tdClient = new TdClient(); $tdClient->sendPhoneNumberVerificationCode('YOUR_PHONE_NUMBER');
4. Дождаться получения кода подтверждения. Теперь необходимо дождаться получения SMS с кодом подтверждения на ваш номер телефона.
5. Подтвердить код. Как только вы получите код подтверждения, необходимо вызвать метод checkPhoneNumberVerificationCode, передав в него полученный код.
Пример кода на PHP:
use td\telegram\TdClient; $tdClient = new TdClient(); $tdClient->checkPhoneNumberVerificationCode('YOUR_VERIFICATION_CODE');
После выполнения этих шагов вы успешно получите код подтверждения в Tdlib программно. Не забудьте обработать возможные ошибки и исключения в вашем коде для достижения надежной и стабильной работы вашего приложения.