問題タブ [mtproto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
5675 参照

c# - Telegram MTProto プロトコル API 呼び出しを行うにはどうすればよいですか?

たとえば、auth.sentCodeメソッドを呼び出し/ラップするには (以下のリンク):

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

私が試してみました:

この例外(および内部例外)が発生します

基になる接続が閉じられました: 送信時に予期しないエラーが発生しました。(相手側がトランスポートストリームを閉じているため、認証に失敗しました。)

0 投票する
1 に答える
1105 参照

api - リクエストで Telegram API メソッドを指定して実装する方法は?

私は単純に Telegram API サーバーに接続して応答を得ようとしています。my.telegram.org でアプリを作成しました。これで、api_id、api_hash、および Telegram api MTproto サーバーへの IP アドレスを取得しました。ドキュメントを開始するには、最初にauth.sendCodeメソッドを使用して認証し、API ユーザーの電話にコードを送信する必要があると記載されています。

だから私はauth.sendCodeメソッドを使用するためにこのpythonスクリプトを試しました:

resを印刷すると、Response [404]と表示されます。ドキュメントによると、メソッドなどの存在しないオブジェクトを呼び出そうとする試みを意味します。

問題は、投稿リクエストのデータ フィールドにあると確信しています。auth.sendCode メソッドを呼び出すために作成した文字列が間違っているため、サーバーは到達しようとしているものを認識できません。

ドキュメントにそのメソッドのクエリの例があります:

(auth.sendCode "79991234567" 1 32 "テストハッシュ" "en")

誰かがそのデータ文字列を修正するのを手伝ってください (この例によると)。Post Requests で API メソッドを実装するにはどうすればよいですか?

0 投票する
2 に答える
1159 参照

c# - TL 言語 (mtproto) 型を C# に変換する

https://core.telegram.org/mtprotoで説明されている Telegram Api TL 言語のスキーマを C#でコンパイルするために、tl-language コンパイラを使用しています。

tl-language を C# クラスにコンパイルするコンパイラがありますhttps://github.com/everbytes/SharpTL.Compiler

ただし、次の行で新しいテレグラム スキーマをコンパイルできます。

そして、それを間違ったコードにコンパイルします:

C#コードでのキャストに解決策はありますか?

C# のこの「flags:#」の型がわかりません

https://core.telegram.org/mtproto/TL-formalに記載されているこの型「#」

将来的には、フラグ フィールドのビット 3 と 4 を使用して、reserved3 フィールドと reserved4 フィールドの名前とタイプを変更した後、新しいフィールドを送信することができます。

0 投票する
1 に答える
817 参照

tcp - cmd または bash で Telegram API にクエリを実行する方法

API の使用を開始するための最初のステップの 1 つは、これです。MTProto サーバー (149.154.167.40:443)、電話番号、API ID、ハッシュ...

正確にはどうすればいいですか?そのようなクエリを作成するにはどうすればよいですか? わかりません。

前もって感謝します

0 投票する
1 に答える
1298 参照

android - テレグラム: テレグラム クライアントからファイル ID を取得する

Telegram ボットはfileid、ファイルのダウンロードに使用します。fileidこれを Telegram client (My Unofficial version) から取得するにはどうすればよいですか? のファイルにmtprotoは、アドレスを示すこのロケーション クラスがあります。

ファイルの場所のパラメータ

  • dc_id int ファイルを保持しているデータセンターの番号
  • volume_id long サーバーのボリューム
  • local_id int ファイル ID
  • ファイルにアクセスするための秘密の長いチェックサム

問題は、クラスfileidからボットに適した を生成する方法がわからないことです。File Location

更新 1:

私はいくつかのリバースエンジニアリングを試みました。File Locationそれで、クラスとの間に何らかの関係があることがわかりましたFileId

私のFile Location サンプルアドレスです。

  • id: 0 // このフィールドはシークレット チャットでのみ使用できます
  • access_hash: 0 // このフィールドはシークレット チャットでのみ使用できます
  • volume_id: 429640340( 199BCA94 HEX)
  • secret: -3528741004939935589( CF0764C08833409B HEX) // TG ドキュメントによると、ファイル CheckSum である必要があります
  • local_id: 6005( 1775 HEX)

これは、ボットから取得しFileIDた以前のクラスによると、次のとおりです。FileLocation

  • ファイル ID:AgADBAADL6gxG06L8w0nhNO87UW3iZTKmxkABJtAM4jAZAfPdRcAAgI

FileID値がBase64フォーマットであることは明らかです。だから私はそれをデコードしました:

  • 16 進値: 0200030400032FA8311B4E8BF30D2784D3BCED45B78994CA9B1900049B403388C06407CF7517000202

FileLocationこれで、この 16 進値で値を確認できます。

  • わからない:0200030400032FA8311B4E8BF30D2784D3BCED45B789
  • ボリューム ID:94CA9B19 HEX
  • わからない:0004
  • ひみつ:9B403388C06407CF HEX
  • local_id:7517 Hex
  • わからない:000202

注: 値はBig-Endian形式で保存されます。

次に、値をデコードする必要がありUnknownます。これらの値を解読するのに役立つ努力に感謝します。