Как сделать вызов API-интерфейса Telegram MTProto?

Например, чтобы позвонить / обернуть auth.sentCode метод (ссылка ниже):

https://core.telegram.org/method/auth.sendCode

Я пытался:

var url = "https://149.154.167.40";  
var data = "(auth.sendCode \"PHONE_CODE+NO\" 0 APP_ID \"SECRET_HASH\" \"en\")";  
using (var wc = new WebClient())  
{  
var result = wc.UploadData(url, GetBytes(data));  
}  

Я получаю это исключение (и внутреннее исключение)

Основное соединение было закрыто: при отправке произошла непредвиденная ошибка. (Аутентификация не удалась, потому что удаленная сторона закрыла транспортный поток.)

3 ответа

Решение

Вы можете начать с этого поста

Сначала вам нужно понять, как сгенерировать AuthKey.

Документация Telegram-API написана не очень хорошо, но если вы продолжите ее изучать... вы в конечном итоге получите ее.

Проработка генерации AuthKey поможет вам создать шаблон и функции, которые вы затем сможете использовать для решения остальной части API

Приветствия.

Используйте TLSharp. Чтобы аутентифицировать пользователя, просто запустите этот код

   var hash = await client.SendCodeRequest(phoneNumber);

   var code = "1234"; //code that you receive from Telegram 

   var user = await client.MakeAuth(phoneNumber, hash, code); 

Если вы попытаетесь получить доступ к https://149.154.167.40 через веб-браузер вы можете увидеть, что протокол https не включен. Если вы посмотрите здесь, есть список поддоменов, которые реализуют https, вы можете попробовать один из них, чтобы сделать ваш запрос API. Я не совсем уверен, что telegram блокирует ваш запрос из-за политики CROSS-ORIGIN, потому что access-control-allow-origin:* заголовок присутствует в ответе. Если это не сработает, вы можете реализовать собственное рукопожатие, как это делает приложение для Android здесь. Я надеюсь, что это поможет вам.

Другие вопросы по тегам