テレグラム:ボットとのチャットで携帯電話番号にメッセージを送信する

多くの人と同様、私はアスタリスクを使用して電話通信を整理しています。 加入者は内線番号に加えて、リダイレクトが行われる携帯電話番号も持っており、不在着信の場合にはSMSメッセージも送信されます。


従来、不在着信の通知は、SMSの形式で電子メールまたはモバイルに送信されていました。 Telegramの出現により、メッセンジャーにメッセージを送信することが可能になりました。 残念なことに、携帯電話番号にメッセージを送信することはできません。


それは私たちにとってより便利です 既に携帯電話番号を持っています(通知を受信したい数百のサブスクライバーがいます)。しかし、チャットIDを見つける必要があり、それぞれに独自のIDがあります。


解決策:小さなチャットボット。


チャットボットはユーザーを受け入れ、電話番号を尋ねます。 次に、受信した番号と対応するチャットIDがサーバーに保存されます。 これで、サービスの番号に通知を送信できます。サービスに関連付けられたボットは、この通知を対応するユーザーに電報で送信します。 安価(SMSの料金は支払わない)であると同時に、怒りもします。


二点


  1. ユーザーがボットに接続するまで、メッセージを送信できません。
  2. 番号を送信したユーザーの識別子と番号を送信したユーザーの識別子が比較されます。不一致の場合、ユーザーは指定された番号に関連付けられません。

アプリケーションは小さいですが、非常に便利です。 任意のメッセージ(以前にSMSまたは電子メールで送信された)を送信できます-呼び出しの通知、エラー、サーバーのクラッシュなど。


いくつかの詳細


送信は、ローカルで実行されているWebサーバーにHTTPリクエストを送信することにより行われます。Webサーバーは、チャットボットを同時に実装します。 サーバーはmongoデータベースでコンプライアンスを検索し、データをTelegramに送信します。 すべてがシンプルです。


Webサーバーはnodejsで作成されており、Telegramと対話するために素晴らしいtelegrafライブラリが使用されています。


ボットを作成してトークンを取得する方法には、すでに指示があります


メッセージを送信するには?


JSONメッセージを含むPOSTリクエスト


例:


curl -X POST \ http://localhost:3030/send/<number> \ -H 'content-type: application/json' \ -d '{"text": "Ahtung!!"}' 

それは私にとってどのように機能しますか? 呼び出しが完了すると、アスタリスクは小さなスクリプトを呼び出して、呼び出しのステータスを調べ、必要に応じてメッセージを送信します。 以上です。


Githubソース: テレグラムアラート
インストールはリポジトリに記述されています。
クイックスタートをしたい人のために、docker-compose.ymlがあります


使用状況ビデオ(50秒)



提案? ご質問は?



Source: https://habr.com/ru/post/J339704/


All Articles