2016-10-17 16 views
13

Tôi đang làm việc trên Telegram api trong ứng dụng java của mình. Tôi cần thực hiện xác thực và ủy quyền với tài khoản điện tín của mình và nhận danh sách thư của nhóm cụ thể của tôi. Vì mục đích này, trước tiên tôi có api_id, api_hashMTProto servers từ trang web điện tín. Thứ hai, tôi đã cố gắng để ủy quyền cho tài khoản của tôi với auth.sendCode phương pháp theo cách này:Cách đúng để gọi các phương thức api điện tín

... 
String url = "https://149.154.167.40:443/auth.sendCode"; 
HttpClient httpClient = HttpClients.createDefault(); 
HttpPost httpPost = new HttpPost(url); 
httpPost.addHeader("Content-type", "application/x-www-form-urlencoded"); 
httpPost.addHeader("charset", "UTF-8"); 

List<NameValuePair> nameValuePairs = new ArrayList<>(); 
nameValuePairs.add(new BasicNameValuePair("phone_number", myPhoneNumber)); 
nameValuePairs.add(new BasicNameValuePair("sms_type", "5")); 
nameValuePairs.add(new BasicNameValuePair("api_id", api_id)); 
nameValuePairs.add(new BasicNameValuePair("api_hash", api_hash)); 
nameValuePairs.add(new BasicNameValuePair("lang_code", "en")); 
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8")); 

HttpResponse response = httpClient.execute(httpPost); 
... 

Nhưng điều này trả về cho tôi javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake ngoại lệ. Tôi đã kiểm tra url có http thay vì https và nội dung này trả về 404 Not Found nội dung html. Cách chính xác để gọi phương thức api điện tín trong java là gì?

Cập nhật:

tôi đã cố gắng sử dụng java socket để gửi TCP bài yêu cầu, nhưng điều này trả về cho tôi 404 not found.

+1

Bạn đã có một cái nhìn vào libs sử dụng API? Ví dụ. https://github.com/ex3ndr/telegram-api ... – Fildor

+0

@Fildor Tôi không muốn sử dụng thư viện của bên thứ 3 nếu có thể. Tôi muốn sử dụng phương pháp java chính để làm điều đó. – hamed

+0

Không, không sử dụng. Chỉ cần nhìn, làm thế nào nó được thực hiện ở đó ... – Fildor

Trả lời

1

Vì đây là giao thức mproto, bạn phải tuân theo đặc điểm kỹ thuật của họ - https://core.telegram.org/mtproto

tôi đề nghị bạn sử dụng dự án này, vì nó đã ví dụ làm việc - https://github.com/badoualy/kotlogram

+0

Cảm ơn bạn đã phản hồi. Tôi muốn tự mình làm, không có thư viện của bên thứ ba, nếu có thể. Bạn có thể vui lòng cung cấp cho tôi chỉ là một cách 'để gửi dữ liệu đến máy chủ mtproto telegram?' Nếu tôi biết điều này, tôi có thể làm tất cả các công việc còn lại. – hamed

+0

@CharlesOkwuagwu Vấn đề của tôi không tạo ra khóa auth. Tôi không có bất kỳ vấn đề với auth-key! vấn đề của tôi là gửi yêu cầu gửi tới máy chủ mtproto telegram. Tôi muốn tìm một cách chính xác để gửi dữ liệu đến các máy chủ telegram trong ứng dụng java của tôi, không tạo ra auth-key! – hamed

+0

@hamed tôi đã cố gắng giải thích cho bạn rằng việc giao tiếp với MTproto không thể thực hiện trực tiếp qua các yêu cầu POST, cách bạn đang cố gắng thực hiện. Tôi tiếp tục chỉ cho bạn các tài nguyên hướng dẫn bạn cách bắt đầu "nói" với các máy chủ điện tín. –

Các vấn đề liên quan