Подтвердить что ты не робот

Использование API Telegram для приложения Java Desktop?

Я не так уж новичок в программировании на Java, но я никогда не работал с внешними библиотеками и т.д. Теперь я хочу разработать настольный клиент для платформы обмена сообщениями "Telegram" с открытым исходным кодом, и я застрял, когда дело доходит до API-Использование.

Существует довольно много документации о API Telegram, найденной в https://core.telegram.org/api, и я уже загрузил mtproto, telegram-api и tl-core из github, и скомпилировал мою собственную библиотеку jar из источника с помощью gradle. Кроме того, я уже написал небольшое приложение, в котором пользователь нажимает кнопку, и ему предлагается ввести его номер телефона, я использую Java-swing-Libraries и ActionListener для этого.

Теперь номер телефона, введенный пользователем, должен быть проверен, если он уже зарегистрирован, метод auth.checkPhone, по-видимому, способен на это. Но как я могу обратиться к нему в моем проекте eclipse? Я не вижу никакого метода "checkPhone" в любом из классов! Что мне делать?

Пожалуйста, помогите мне, я не могу помочь себе, и я отчаянно застрял в своем проекте. Даже небольшой подсказку поможет.

Спасибо, Advance, Lukas

4b9b3361

Ответ 1

По существу вам нужно будет заполнить пробелы в коде, указанном в GitHub, в репозитории ex3ndr/telegram-api. Если у вас есть файл библиотеки Jar, который вы создали, и файл tl-api-v12.jar на пути Java-сборки проекта Eclipse, посмотрите на RPC-звонки раздел README и

Сначала вам нужно настроить объект AppInfo с помощью учетных данных API, тогда вам также придется создавать новые классы, которые реализуют интерфейсы AbsApiState и ApiCallback. Как только они будут доступны, вы можете создать объект TelegramApi и сделать вызов RPC службе Telegram следующим образом; в этом случае с использованием предлагаемого метода auth.checkPhone:

// TODO set up AbsApiState, AppInfo and ApiCallback objects
TelegramApi api = new TelegramApi(state, appInfo, apiCallback);

// Create request
String phoneNumber = "1234567890";
TLRequestAuthCheckPhone checkPhone = new TLRequestAuthCheckPhone(phoneNumber);

// Call service synchronously
TLCheckedPhone checkedPhone = api.doRpcCall(checkPhone);
boolean invited = checkedPhone.getPhoneInvited();
boolean registered = checkedPhone.getPhoneRegistered();
// TODO process response further

Объект TelegramApi представляет ваше соединение с удаленной службой, которая представляет собой стиль ответа на запрос API. Вызовы RPC выполняются с помощью метода doRpcCall, который принимает объект запроса из пакета org.telegram.api.requests (тип TLRequestAuthCheckPhone в примере), заполненный соответствующими параметрами. Затем возвращается объект ответа (TLCheckedPhone выше) с результатом, когда он доступен.

В случае асинхронного вызова метод возвращается немедленно, а метод обратного вызова onResult выполняется, когда результат доступен:

// Call service aynchronously
api.doRpcCall(checkPhone, new RpcCallbackEx<TLCheckedPhone>() {
    public void onConfirmed() { }
    public void onResult(TLCheckedPhone result) {
        boolean invited = checkedPhone.getPhoneInvited();
        boolean registered = checkedPhone.getPhoneRegistered();
        // TODO process response further
    }
    public void onError(int errorCode, String message) { }
});