Я хочу подключиться к Telegram, используя nodejs.
Библиотеки, которые я смог найти, работают с tdlib , которые мне нужно сначала создать на моей ОС. Однако при этом я сталкиваюсь с множеством ошибок.
Наконец, я смог найти библиотеку, для которой не нужен tdlib, и которая могла бы подключиться к серверу без него. его имя telegram-mtproto .
Я написал этот код на основе их примеров.
const telegram = require ('telegram-mtproto')
const conf = {
telegram:{
id: 'api-id',
hash:'api-hash',
mobile:'+9996620001'
}
}
function init(){
const api = {
layer : 57,
initConnection : 0x69796de9,
api_id : conf.telegram.id,
invokeWithLayer: 0xda9b0d0d,
app_version : '1.0.1',
lang_code : 'en'
}
const server = { dev: true, webogram: true}
return telegram.MTProto({ api, server })
}
let client,
phone_code_hash;
async function connect(params){
if (!client) client = init();
try{
if (params.level == 1){
const a = await client('auth.sendCode', {
phone_number : conf.telegram.mobile,
current_number: false,
api_id : conf.telegram.id,
api_hash : conf.telegram.hash
})
phone_code_hash = a.phone_code_hash;
return a;
}
else if (params.level == 2){
const a = await client('auth.signIn', {
phone_number : conf.telegram.mobile,
phone_code_hash,
phone_code : params.code
})
console.log(a)
return a;
}
}
catch(err){
console.log(err);
}
}
connect({level:1}).then(res=>{
connect({level:2,code:'22222'});
});
Однако у меня есть несколько вопросов. Если вы работали с этой библиотекой, , пожалуйста, помогите мне :
Каков полный список параметров, которые можно ввести в переменную api и какой из них является обязательным?
Какую роль играет слой ключ в api переменной? Обязательно ли его использовать? Следует ли всегда фиксировать его значение на 57 ?
Что такое ключ invokeWithLayer , используемый в переменной api ? Всегда ли это значение должно быть 0xda9b0d0d ?
Что такое ключ webogram в переменной server ?
Я зарегистрировался в https://my.telegram.org/apps. Он дал мне URL-адрес с именем тестовая конфигурация , URL-адрес с именем производственная конфигурация и набор publi c ключей . Как я могу ввести эти значения в программу?
библиотека прошла через процессы auth.sendCode и auth.signIn во всех своих Примеры.
Что я должен сделать позже, чтобы пропустить эти шаги, когда я go успешно их выполнил в первый раз?
Я прочитал основные документы телеграмм, но они казались мне двусмысленными, и я не мог извлечь из них ничего полезного.