2015-05-18 10 views
8

Zum Beispiel zu nennen/wickeln Sie die auth.sentCode Methode (Link unten):Wie macht man ein Telegramm MTProto Protokoll api Anruf?

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

ich versucht habe:

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)); 
} 

ich diese Ausnahme erhalten (und innere Ausnahme)

Die zugrunde liegende Verbindung wurde geschlossen: Ein unerwarteter Fehler trat bei Senden auf. (Authentifizierung fehlgeschlagen, da die anderen Teilnehmer den Transportstrom geschlossen hat.)

+0

Ich habe keine Erfahrung mit diesem Protokoll, aber die meiste Zeit sehe ich Ausnahmen wie das ist ein SSL/TLS-Problem. Ich sehe, dass Sie eine fest codierte IP verwenden. Ist es möglich, dass es selbst signierte Zertifikate gibt, die von Ihrer App abgelehnt werden? (Alternativ: Unterstützt dieser Endpunkt definitiv https? Ich habe ähnliche Fehler beim Versenden von https-Anfragen an einen http-Endpunkt bekommen.) –

+1

Ich denke, bis jetzt kein Beispiel, nur nicht implementierte Bibliotheken bei githhub –

+0

Ich habe einen Code gepostet (in vb.net) um Sie hier zu starten http://Stackoverflow.com/a/32809138/44080 –

Antwort

2

Sie ein Einstieg mit this SO post

Sie benötigen würde, zu verstehen, wie ein AuthKey zuerst zu erzeugen.

Die Telegram-API-Dokumentation ist nicht sehr gut geschrieben, aber wenn Sie es weiter studieren ... bekommen Sie schließlich die Hand davon.

Arbeiten durch die AuthKey Erzeugung würden Sie ein Muster und Funktionen aufbauen helfen, die Sie dann den Rest der API angehen verwenden, um

Beifall.

1

Wenn Sie versuchen, zu https://149.154.167.40 über einen Web-Browser zugreifen, können Sie sehen, dass das HTTPS-Protokoll nicht aktiviert ist. Wenn Sie sich here ansehen, gibt es eine Liste von Subdomains, die https implementieren. Sie können eine davon versuchen, um Ihre API-Anfrage zu stellen. Ich bin nicht wirklich sicher, dass das Telegramm Ihre Anfrage aufgrund der CROSS-ORIGIN-Policy blockiert, da der Header in der Antwort vorhanden ist. Wenn das nicht funktioniert, können Sie Ihren eigenen Handshake wie die Android-Anwendung in here implementieren. Ich hoffe das hilft dir.

1

Verwenden Sie TLSharp. Um Benutzer zu authentifizieren, führen Sie einfach diesen Code