この投稿は、Twitterボットと彼のためのあらゆる種類のホイッスルダンサーに関する記事の登場に触発されています。 Twitter APIの私のビジョンを紹介します。 猫へようこそ。
そのため、タイトルが示すように、ボットアプリケーションはツィーターAPIを使用してオンボードのLinuxマシンを制御します。
開発言語としてpythonが選択され、その結果、tweepyライブラリが選択されました。 このライブラリの初期セットアップのHoutは、上記のリンクにあります。
構成
対象に直接進みます。 このコードは完全なLinuxデーモンとして設計されており、構成ファイルがあり、プラグインで動作します。
構成ファイルを検討してください。
# Twitter credentials CONSUMER_KEY = '' CONSUMER_SECRET = '' ACCESS_KEY = '' ACCESS_SECRET = '' # base path BASE_PATH = os.path.dirname(__file__) # pid path PID_PATH = BASE_PATH+'/elmot.pid' # people nicknames who can manage system AUTHORIZED_ACCOUNTS = [] # logfile LOG_PATH = BASE_PATH+'/log/elmot.log' ERROR_LOG_PATH = BASE_PATH+'/log/elmot.err' # type None to disable incoming message log INCOMING_MESSAGE_LOG = BASE_PATH+'/log/incoming.log' # run elmot as user (do not use root) RUN_UID = pwd.getpwnam("root").pw_uid
すべてが透明です。 作業を開始するには、先ほど取得したフィールドconsumer_key、consumer_secret、ユーザーキー-access_keyおよびaccess_secretを入力するだけです。 AUTHORIZED_ACCOUNTSでシステムの制御を許可されている人のニックネームを追加することも必要です。
プラグイン
プラグインに移りましょう。 すべての機能は、彼らの助けによってのみ提供されます。 プラグインテンプレートは次のとおりです。
class Plugin(object): name = 'undefined' keyword = 'undefined' # actions: # 0 - silent # 1 - private message # 2 - tweet to timeline action = 2 controlled = True def __init__(self): print '*', self.name, 'loaded' def execute(self, message): pass # run method only for non controlled plugins # for threading support with python Threads def run(): pass
nameはプラグインの名前、keywordはアクセスするための一意の識別子です。
アクション-必要なアクション、つまり、プラグインはサイレントにするか、PMで応答するか、タイムラインに書き込むことができます。
制御されたフィールドは、プラグインが対話型であるかどうか、つまりクライアントメッセージを受信して処理するかどうかをプラグインに伝えます。 プラグインが対話型の場合、プラグインは個人の電子メールでボットに着信するメッセージをリッスンし、メッセージがそれに宛てられた場合、executeメソッドを呼び出します。このメソッドでは、何でも実装できます。 プラグインが「サイレント」の場合、別のスレッドでrun()メソッドからコードを実行します。
使い方
ボットに「キーワードコマンド引数」という形式のプライベートメッセージを送信するだけです。 ボットはメッセージを解析し、処理のために適切なキーワードとともにプラグインに送信します。 たとえば、稼働時間プラグインを考えます。 キーワードを1つだけ受け取ります-キーワードと、そのタイムラインで稼働するマシンを報告します。
実装されたプラグイン
conntest-リモートホストとのリンクの常時チェック。 彼はタイムラインの問題について書いています。
removetweets-ボットのタイムラインからn個のツイートを削除します(例「removetweets 5」)。
sshmonitor-auth.log解析に基づくsshサーバー監視。 認証エラーに関するタイムラインを書き込みます。
稼働時間-マシンの稼働時間を表示します。
それだけです。あなたは自分の好みに合わせて任意のプラグインを実装し、ツイッター経由で何かを監視(またはサービスを再起動)することができます。
ご意見をお寄せいただきありがとうございます。
githubのPS コード 。
PPSデーモンを起動するには、binディレクトリのリンクを使用する必要があります。