シェル上のシンプルなSMSボット

ボットです

こんにちは、カブロビテス!

先日、SMS通信用の簡単なボットを作成しました。 彼は、着信メッセージを受信し、それらを処理し、(メッセージの単語が彼の「記憶」にある場合)論理的な答えを送り返すことができます。



必要なもの:


-ホームコンピューター上のUbuntu 12.04

-gnokiiをインストールしました(インストール方法はこちらをご覧ください

-シェルスクリプト

-このスクリプトを定期的に実行するcron

-アカウントにお金がある携帯電話(ほぼすべてのBluetoothを搭載した古いNokia、およびSonyEricsson kシリーズでも可能)

-Bluetoothアダプター

-数時間の自由時間。

+プラスは、インターネット接続の必要性の欠如でした。



興味があれば-猫の下でお願いします。



そのため、アプリケーションの一般的なロジックを説明することから始めます。これにより、何が何でなぜなのかがすぐにわかります。



サードパーティのサブスクライバーAがいます。

電話があります-加入者B



私たちの行動。




1)電話の標準的な手段を使用して、Bluetooth経由でサブスクライバーBをコンピューターに接続します。これにより、サブスクライバーBが自動的に承認できるようになります。



2)gnokiiをインストールします。



3)sms_bot.shスクリプトを作成して実行する権限を作成します。

#!/bin/bash inp=$(gnokii --getsms IN 1 end) #     echo $inp>/home/light204/Desktop/inp.txt #     counter_love=$(grep -c  /home/light204/Desktop/inp.txt) #     counter_luba=$(grep -c  /home/light204/Desktop/inp.txt) #     counter_hello=$(grep -c  /home/light204/Desktop/inp.txt) #     counter_good=$(grep -c  /home/light204/Desktop/inp.txt) #     counter_name=$(grep -c  /home/light204/Desktop/inp.txt) #     killall gnokii # gnokii,        #    ,     ,     . if [ "$counter_love" == "1" ]; then echo "  ,    !!! ( )" | gnokii --sendsms '+7904xxxxxx' elif [ "$counter_luba" == "1" ]; then echo ", ,    :)" | gnokii --sendsms '+7904xxxxxx' elif [ "$counter_hello" == "1" ]; then echo "  !   ?" | gnokii --sendsms '+7904xxxxxx' elif [ "$counter_good" == "1" ]; then echo " ,     !  , ,     :(" | gnokii --sendsms '+7904xxxxxx' elif [ "$counter_name" == "1" ]; then echo " Light204_comp .   ,  ;)" | gnokii --sendsms '+7904xxxxxx' fi sleep 3 killall gnokii # gnokii,        gnokii --deletesms IN 1 end #   #.      
      
      







4)たとえば、cronを設定してsms_bot.shスクリプトを毎分実行します。



5)システムは動作するはずです。 サブスクライバAはサブスクライバBにSMSを送信します。サブスクライバBの電話は着信SMSを受信し、スクリプトを読み取り、分析し、サブスクライバAに応答を送信し、サブスクライバAからSMSを削除します。



PS私のスクリプトは完璧とはほど遠いですが、動作するテストオプションです。 さらに、ここで説明する複合体は「現状のまま」誰かが必要とすることはほとんどないと思いますが、あなたはそれを作り直し、そして/またはあなたのニーズに適応させることができるかもしれません。



All Articles