1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DjangoでTwitterAPIを使う

Last updated at Posted at 2018-01-02

Djangoのチュートリアルを終えて、
Djangoを使いこなせるように、
ゆくゆくはPythonで仕事がしたいといった状況です。

目的

今回作りたいものは、TwitterAPIを利用して下のようなツイートを簡単にするツールです。

スクリーンショット 2018-01-02 10.38.54.png

これはMTGの大会成績のツイートで、
熱心なプレイヤーも、そうでないプレイヤーも、メモとしてこんなかんじでつぶやきます。
このつぶやきの手間を減らすツールを作って、
みんなに使ってもらって、
つぶやきのフォーマットが定まったところで
がばーっとデータ抜き出すってのをいつかやりたいです。

前提

Python 3.6.3
Django 2.1 dev
twitter(パッケージ名) 1.18.0
Djangoのチュートリアル中に作成したプロジェクト配下を作業ディレクトリとします。

以降、間違いがありましたら優しく指摘していただけますと幸いです。
不明点がございましたら、お気軽にコメントしてください。

手順

  1. twitterのインストール

    python3 -m pip install twitter
    pipでインストールしたtwitterの情報を表示
    pip show twitter

  2. Djangoに新規アプリを作成

    python3 manage.py startapp mtgrecords

  3. モデルを作成
    大会(event)と試合(Match)のモデルを作成します。

  4. Adminのページの編集

  5. 成績を入力

  6. viewを編集
    下のviewが呼ばれたとき、大会の成績をツイートします。

    view.py
    class TweetView(generic.TemplateView):
        template_name = "mtgrecords/tweet.html"
    
        def get_context_data(self, **kwargs):
            t = Twitter(auth=OAuth(api.token, api.token_secret, api.consumer_key, api.consumer_secret))
            event = get_object_or_404(Event, pk=kwargs['pk'])
            t.statuses.update(
                status=event.date.strftime('%m/%d') + " " + event.event_type + "\n" +
                "使用デッキ" + event.deck + "\n")
    
            context = super().get_context_data(**kwargs)
            context['result'] = "ツイートしました!"
            return context
    

スクリーンショット 2018-01-02 10.33.40.png

まとめ

とりあえず自分のアカウントで大会の成績をつぶやけるようになりました。
本当に作りたいものはMTGプレイヤーみんなが利用できるものなので
まだまだ道のりは長そうですが、はじめの一歩ということで。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?