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);
メソッドのパラメーターについて少し:
- phoneNumber-国際形式の電話番号(79184981723など)
- code-SendCodeRequestメソッドの実行後にTelegramから受け取るコード
メッセージを送る
メッセージを送信するには、電話番号またはユーザー名で連絡先をインポートします。
var userByPhoneId = await client.ImportContactByPhoneNumber("791812312323");
メッセージを送信しています。
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