Marketistaと言うtwitter自動ダイレクトメッセージツールを作ってみた

Marketistaと言うtwitterダイレクトメッセージツールを作ってみた

先日までちょくちょく作成していたアプリ「Marketista」のDM機能を載せておこうと思います。
環境はCentOS,python,django,docker,apacheです。
プログラムは個別の記事でご紹介していますので興味のある方はご覧になってください。

ログイン

ログイン機能はライブラリの「django-allauth」を使用しています。
ユーザー名でのログインをメールアドレスでログインできるように変更しています。
もちろん「二段階認証」「サインアップ」「ログアウト」等の機能もあります。
「メール認証付きユーザー登録機能」をdjangoで実装する

セッション管理

twitterAPIを使用しないとtwitter内の検索機能やDM機能が使用できません。APIを使用する為にアクセストークンを取得します。
twitterの「developer」でアクセストークンを取得したらユーザーごとにアクセストークンをアプリケーションに登録します。

DMテンプレート編集

DMの定型文を登録します。
メッセージを送信する際「[username]」の部分は自動で受信者のユーザー名に変換されます。

ユーザー検索

「キーワード」と「件数」を入力して特定のキーワードについてつぶやいているユーザーを検索できます。
「Send Direct Message!」と記載があるボタンを押下すると、チェックボックスにチェックがついているユーザーにDMが送信されます。
djangoでツイートを検索して結果を表示してみた
pythonでtwitterAPIを叩いてダイレクトメッセージを送る

送信したメッセージの確認

テストなのですべてのメールを自分自身に送信するように書き換えています。
twitterのダイレクトメッセージを確認してみます。
受信者のユーザー名でテンプレートがきちんと送信できているのが確認できました。

最後に

友人が仕事で毎日twitterのDMを使ってるので作ってみました。「DMを送るユーザーはツイート内容によって選定したい」「送信する時は相手の名前を自動で入力したい」等の要望があったのでかなえられているかと思います。
しかし公開したサービスにしてもアクセストークンを取得する人なんて「エンジニアしかいないんだろうな」なんて考えています。
もし使ってくれる人がいても、アクセストークン取得代行ありきって感じになりそうですね。

ユーザーの細かい選定はできなくなってしまいますが、「cronでの完全自動化」とかもそのうちやってみようとか思っています。

YouTube