どのように私はAWS上でTwitterのボットを構築し、再びAzure😲🤖
このボットはミゲルガルシアによってこれの助けを借りて準備されました.
Azure VM Twitterの開発者アカウント Twitterアプリ認証資格証明 すべてのこれらの要件のミゲルによってチェックしてください!
Tweepyは、PythonでTwitter APIにアクセスする非常に便利な方法を提供するオープンソースのPythonパッケージです.Tweepyは、TwitterのモデルとAPIエンドポイントを表すクラスとメソッドのセットを含みます.
データ符号化と復号化
HTTPリクエスト
結果ページ
認証認証
制限速度
ストリーム
あなたがTweepyを使用していなかったならば、あなたはHTTP要求、データ直列化、認証と料金制限をしなければならない低レベル詳細に対処しなければなりません.これは時間がかかるかもしれないし、エラーがちです.代わりに、Tweepyのおかげで、ビルドする機能に集中することができます.
以下はconfigモジュールのソースコードです.この関数は、環境変数から認証資格情報を読み込み、Tweepy APIオブジェクトを作成する関数です.
あなたの興味に関連するコンテンツを使用してアカウントをフィードするには、このボットを使用することができます.
ボットソースコード
下に、このボットの完全なソースコードを見ることができます.これは、ストリーム“を使用してつぶやきをフィルタリングするために使用されています.ストリームからの各つぶやきが好まれ、retweetedとしてマークされます
ボットまたはアプリケーションをパッケージ化するには、プロジェクトのルートディレクトリにDockerFileを作成する必要があります.このファイルには、あなたのアプリケーションを含むDockerイメージを作成するために使用される一連の命令が含まれます.
これはプロジェクト構造がどのように見えるかです.
さて、このコマンドを使ってイメージを構築できます.
Dockerイメージを作成したコンピューターから、これらのコマンドを実行してファイルにエクスポートします.後でこのファイルを使用して、Azure VMに画像をアップロードします.
接続したら、以下のコマンドを実行して、dockerをVMにインストールします.
ローカルコンピュータから、あなたのVMにSCPを使用してボットDockerイメージをアップロードします.これはあなたのインターネット接続に応じていくつかの時間がかかることができます
ボットを展開する最終段階は、あなたのAzure VMでDockerイメージを実行することです.
Dockerコマンドを使用してこれを行うことができます.フラグ- dと-- RESTATEを渡すと、常に、あなたがsshセッションから切断するか、VMが再開されるならば、ボットが走るのを続けることを保証します:
アボット
必要条件⚙
Tweepyは何ですか🐣?
Tweepyは、PythonでTwitter APIにアクセスする非常に便利な方法を提供するオープンソースのPythonパッケージです.Tweepyは、TwitterのモデルとAPIエンドポイントを表すクラスとメソッドのセットを含みます.
データ符号化と復号化
HTTPリクエスト
結果ページ
認証認証
制限速度
ストリーム
あなたがTweepyを使用していなかったならば、あなたはHTTP要求、データ直列化、認証と料金制限をしなければならない低レベル詳細に対処しなければなりません.これは時間がかかるかもしれないし、エラーがちです.代わりに、Tweepyのおかげで、ビルドする機能に集中することができます.
竜骨Azrecrectifiedボットで進む🤖
以下はconfigモジュールのソースコードです.この関数は、環境変数から認証資格情報を読み込み、Tweepy APIオブジェクトを作成する関数です.
# tweepy-bots/bots/config.py
import tweepy
import logging
import os
logger = logging.getLogger()
def create_api():
consumer_key = os.getenv("CONSUMER_KEY")
consumer_secret = os.getenv("CONSUMER_SECRET")
access_token = os.getenv("ACCESS_TOKEN")
access_token_secret = os.getenv("ACCESS_TOKEN_SECRET")
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth, wait_on_rate_limit=True,
wait_on_rate_limit_notify=True)
try:
api.verify_credentials()
except Exception as e:
logger.error("Error creating API", exc_info=True)
raise e
logger.info("API created")
return api
このボットは、アクティブに積極的に特定のキーワードを含むつぶやきを見て、以前導入されたtweepyストリームを使用します.あなたがつぶやき著者ではない場合、各つぶやきの場合は、それは好きなようにつぶやきをマークし、それをretweetされます.あなたの興味に関連するコンテンツを使用してアカウントをフィードするには、このボットを使用することができます.
ボットソースコード
下に、このボットの完全なソースコードを見ることができます.これは、ストリーム“を使用してつぶやきをフィルタリングするために使用されています.ストリームからの各つぶやきが好まれ、retweetedとしてマークされます
#!/usr/bin/env python
# tweepy-bots/bots/favretweet.py
import tweepy
import logging
from config import create_api
import json
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger()
class FavRetweetListener(tweepy.StreamListener):
def __init__(self, api):
self.api = api
self.me = api.me()
def on_status(self, tweet):
logger.info(f"Processing tweet id {tweet.id}")
if tweet.in_reply_to_status_id is not None or \
tweet.user.id == self.me.id:
# This tweet is a reply or I'm its author so, ignore it
return
if not tweet.favorited:
# Mark it as Liked, since we have not done it yet
try:
tweet.favorite()
except Exception as e:
logger.error("Error on fav", exc_info=True)
if not tweet.retweeted:
# Retweet, since we have not retweeted it yet
try:
tweet.retweet()
except Exception as e:
logger.error("Error on fav and retweet", exc_info=True)
def on_error(self, status):
logger.error(status)
def main(keywords):
api = create_api()
tweets_listener = FavRetweetListener(api)
stream = tweepy.Stream(api.auth, tweets_listener)
stream.filter(track=keywords, languages=["en"])
if __name__ == "__main__":
main(["#AzureCertified"])
Dockerイメージの作成🐳
ボットまたはアプリケーションをパッケージ化するには、プロジェクトのルートディレクトリにDockerFileを作成する必要があります.このファイルには、あなたのアプリケーションを含むDockerイメージを作成するために使用される一連の命令が含まれます.
これはプロジェクト構造がどのように見えるかです.
tweepy-bots/
│
├── bots/
│ ├── config.py
│ └── favretweet.py
│
├── requirements.txt
└── Dockerfile
次のdockerfileを使用して、fav & retweet botのイメージを作成できます.Pythonイメージをベースイメージとして使用します.私たちはこのイメージを非常に小さくて、python 3を含んでいるので、ベースとして選びました.7とピップ.このdockerfileはボットコードと要件をコピーします.画像にtxtファイル.最後に、PIP 3を使用してイメージ内に依存関係をインストールします.FROM python:3.7-alpine
COPY bots/config.py /bots/
COPY bots/favretweet.py /bots/
COPY requirements.txt /tmp
RUN pip3 install -r /tmp/requirements.txt
WORKDIR /bots
CMD ["python3", "favretweet.py"]
最終的な行は、このイメージが使用されるとき、どんなコマンドを実行しなければならないかについて言います.さて、このコマンドを使ってイメージを構築できます.
$ docker build . -t fav-retweet-bot
最後に、docker runコマンドを使用してイメージをテストし、認証資格を保持している環境変数を渡します.$ docker run -it -e CONSUMER_KEY="nMRNy54oWfdfssdfsV9AoNavy0I" \
-e CONSUMER_SECRET="olAL5VAgZLWNspsdajff757kmsPEwuxpvLCLSR08DMa4O" \
-e ACCESS_TOKEN="792518593-j7gWSqzQO31ju7Bfdsf7NlZeSENsuADGU9B90r" \
-e ACCESS_TOKEN_SECRET="fusFsxvP5IglRckJ1I1why6017xMNkzxqBID48Azw0IoT" \
fav-retweet-bot
Azure VMへの展開
ステップ1 :エクスポートする
Dockerイメージを作成したコンピューターから、これらのコマンドを実行してファイルにエクスポートします.後でこのファイルを使用して、Azure VMに画像をアップロードします.
$ docker image save fav-retweet-bot:latest -o fav-retweet-bot.tar
ステップ2:あなたのazure VMにDockerをインストールします
接続したら、以下のコマンドを実行して、dockerをVMにインストールします.
AzureUser@TwitterBot:~$ sudo apt-get update
AzureUser@TwitterBot:~$ sudo apt install docker.io
AzureUser@TwitterBot:~$ sudo adduser ubuntu docker
ステップ3:あなたのボットのDockerイメージをアップロードしてください
ローカルコンピュータから、あなたのVMにSCPを使用してボットDockerイメージをアップロードします.これはあなたのインターネット接続に応じていくつかの時間がかかることができます
scp fav-retweet-bot.tar [email protected]:/
Azure VMに接続し、DockerイメージをロードしますAzureUser@TwitterBot:~$ docker image load -i fav-retweet-bot.tar
ステップ4:あなたのボットのDockerイメージを実行してください
ボットを展開する最終段階は、あなたのAzure VMでDockerイメージを実行することです.
Dockerコマンドを使用してこれを行うことができます.フラグ- dと-- RESTATEを渡すと、常に、あなたがsshセッションから切断するか、VMが再開されるならば、ボットが走るのを続けることを保証します:
AzureUser@TwitterBot:~$ docker run -d --restart always \
-e CONSUMER_KEY="nMRNy54oWfdfssdfsV9AoNavy0I" \
-e CONSUMER_SECRET="olAL5VAgZLWNspsdajff757kmsPEwuxpvLCLSR08DMa4O" \
-e ACCESS_TOKEN="792518593-j7gWSqzQO31ju7Bfdsf7NlZeSENsuADGU9B90r" \
-e ACCESS_TOKEN_SECRET="fusFsxvP5IglRckJ1I1why6017xMNkzxqBID48Azw0IoT" \
fav-retweet-bot
Docker psを使用すると、ボットが動作していることを確認でき、そのコンテナIDを見つけることができます.AzureUser@TwitterBot:~$ docker logs f4aefe89a890
INFO:root:API created
INFO:root:Processing tweet id 1218244916562785538
INFO:root:Processing tweet id 1418486946762214918
今、あなたがSSHのセッションから切断したり、コンピュータをオフにしても、ボットはあなたのAzure VMで実行し続けます.Rishabkumar 7 / アボット
ツイッターボットは、retweettified tweetsをretweetsと好き好き!
アボット
Pythonで書かれて、Azure VMに配備されて、好きで、retweetsしてください.
ミゲルガルシアによるソースコード.
View on GitHub
Reference
この問題について(どのように私はAWS上でTwitterのボットを構築し、再びAzure😲🤖), 我々は、より多くの情報をここで見つけました
https://dev.to/rishabk7/how-i-built-a-twitter-bot-on-aws-and-then-again-on-azure-94m
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(どのように私はAWS上でTwitterのボットを構築し、再びAzure😲🤖), 我々は、より多くの情報をここで見つけました https://dev.to/rishabk7/how-i-built-a-twitter-bot-on-aws-and-then-again-on-azure-94mテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol