Ответ 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) { }
});