Как сделать вызов 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 здесь. Я надеюсь, что это поможет вам.