C#からTelegramにメッセージを送信します

TLSharpロック!



C#は多数のライブラリを備えた開発言語ですが、その中にはTelegram APIの単一の実用的な実装はありません。 私の小さなTLSharpライブラリの助けを借りてこの状況を修正したいと思います。 この記事には多くのコードと1匹の猫が含まれます。





詳細をすぐに指定し、Telegram Bot APIではなくTelegram APIを使用してメッセージを送信することを検討します。 違いは何ですか?

Telegram Bot APIはボットを作成するためのAPIであるため、より多くの制限があります。 たとえば、ユーザーがボットを追加するまで、ユーザーにメッセージを送信することはできません。 Telegram APIにはそのような制限はなく、すべての公式クライアントが使用します。



セッションを作成する



まず、ライブラリを初期化し、セッションリポジトリを作成します。

var store = new FileSessionStore(); var client = new TelegramClient(store, "session");
      
      





サーバーに接続します。

 client.Connect();
      
      





これでセッションを作成できます。 これを行うには、次のコードを実行します。

 var hash = await client.SendCodeRequest(phoneNumber); //     var code = "1234"; //     Telegram var user = await client.MakeAuth(phoneNumber, hash, code); //  
      
      





メソッドのパラメーターについて少し:







メッセージを送る



メッセージを送信するには、電話番号またはユーザー名で連絡先をインポートします。

 var userByPhoneId = await client.ImportContactByPhoneNumber("791812312323"); //     var userByUserNameId = await await client.ImportByUserName("userName"); //   
      
      





メッセージを送信しています。

 await client.SendMessage(userId, "Hello Habr!");
      
      





誰もが理解できるように、ライブラリインターフェイスをできる限りシンプルにしようとしました。

たとえば、猫と一緒に写真を送信するには、次のコードを実行するだけで十分です。

 var mediaFile = await client.UploadFile("cat.jpg", file); var res = await client.SendMediaMessage(userId, mediaFile);
      
      





電報の猫






現時点では、ライブラリは最も必要なメソッドのみを実装しています。 ライブラリコードはまだ本番環境で使用する準備ができていないため、Nugetパッケージとして投稿しませんでした。 ライブラリをプロジェクトに追加するには、GitHubからソースを取得してコンパイルし、参照TLSharp.Core.dllを追加する必要があります。



ご清聴ありがとうございました。コミットでライブラリをサポートしていただければ幸いです。



GitHubリポジトリ: github.com/sochix/TLSharp



All Articles