Twitterのログを取る(なるべくたくさん)ためのクライアント。AWS Lambdaで実装している。
UserStreamが死んでしまったので、それと同等のツイートのログを24時間取りたい。
他のクライアントと同様にホームTLを取得するだけでなく、自分のフォロイー全員のTLを巡回して全てのツイートを取得する。これによりUserStreamのall repliesオプションと同じようなTLを保存することを試みる。
サーバーレス。全ての処理はLambdaが行い、結果はS3に保存する。
頑張ってください。
新規作成しても構わないし既存のバケットを使っても構わない。
東京リージョンからは次のリンクで実行できる。 CloudFormation
AWSのコンソールから操作する場合は
テンプレートの指定 > テンプレートソース
で次のURLを入力する。
https://netebakari.s3-ap-northeast-1.amazonaws.com/twitter-timeline-tracker/cloudformation.yaml
設定するパラメーターは次の通り。
名前 | 内容 |
---|---|
AccessToken | TwitterのAccess Token |
AccessTokenSecret | TwitterのAccess Token Secret |
ConsumerKey | TwitterのConsumer Key |
ConsumerSecret | TwitterのConsumer Secret |
DaysToArchive | ツイートをアーカイブする日数。3に設定すると、8/20 0:00を迎えた時点で8/17のツイートがアーカイブ対象となり、8/17のツイートは新規に取得されなくなる |
DynamoDbTableName | TLをどこまで取得したかを管理するDynamoDBのテーブル名。新規に作成する |
IncludeFollowers | trueまたはfalseのいずれか。trueを指定すると自分のフォロワーのTLも取得する |
QueueName | ユーザーTLを取得するスケジュールを管理するために使うSQSのキュー名 |
RoleName | Lambdaに割り当てるロール名 |
S3BucketName | ツイートのログを保存するS3のバケット名 |
TTLinDays | DynamoDBのTTL(日数。3なら72時間) |
TwitterUserId | 自分のTwitterユーザーID。スクリーンネームではないので注意 |
UploadedPackageBucketName | パッケージ(.zip)をアップロードしたS3のバケット名(デフォルト値でよい) |
UploadedPackageKeyName | パッケージ(.zip)のキー名(デフォルト値でよい) |
UtcOffsetInHours | 日本時間なら9 |
CLIからの場合は次のように実行する。
aws cloudformation create-stack \
--stack-name TwitterTLTracker \
--template-url "https://netebakari.s3-ap-northeast-1.amazonaws.com/twitter-timeline-tracker/cloudformation.yaml" \
--capabilities CAPABILITY_NAMED_IAM \
--parameters \
ParameterKey=AccessToken,ParameterValue=___YOUR_ACCESS_TOKEN__ \
ParameterKey=AccessTokenSecret,ParameterValue=___YOUR_ACCESS_TOKEN_SECRET__ \
ParameterKey=ConsumerKey,ParameterValue=___YOUR_CONSUMER_KEY__ \
ParameterKey=ConsumerSecret,ParameterValue=__YOUR_CONSUMER_SECRET__ \
ParameterKey=DaysToArchive,ParameterValue=4 \
ParameterKey=DynamoDbTableName,ParameterValue=TwitterTLTracker-Timelines \
ParameterKey=IncludeFollowers,ParameterValue=false \
ParameterKey=QueueName,ParameterValue=TwitterTLTracker-ScheduleQueue \
ParameterKey=RoleName,ParameterValue=TwitterTLTracker-Lambda \
ParameterKey=S3BucketName,ParameterValue=__YOUR_S3_BUCKET_NAME__ \
ParameterKey=TTLinDays,ParameterValue=4 \
ParameterKey=TwitterUserId,ParameterValue=__YOUR_TWITTER_ID__ \
ParameterKey=UploadedPackageBucketName,ParameterValue=netebakari \
ParameterKey=UploadedPackageKeyName,ParameterValue=twitter-timeline-tracker/timeline-tracker-latest.zip \
ParameterKey=utcOffsetInHours,ParameterValue=9
インストール直後は次のような実行間隔になっているが、必要に応じて調整する。それぞれのLambdaの処理内容はDetails.md参照。
Twitter-TL-Tracker-HomeTimeline
: 2分おきTwitter-TL-Tracker-userTL
: 2分おきTwitter-TL-Tracker-QueueFiller
: 30分おき
ツイートが指定したS3バケットに保存されていく。
Details.mdを参照