らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

Twitter API の利用申請を行い、tweepy を使った Python アプリケーションを作る

Twitter API を利用する為には Twitter アカウントとは別に、API の利用申請を行う必要があるそうです。 Twitter API の利用申請を行ったので、申請方法をメモしておきます。 また、申請が完了したら Twitter API を利用した Python アプリケーションを作ってみます。

1.利用申請を行う

利用申請を行っていきます。

Step.1-1

Twitter API へアクセスし、右上の Apply をクリックして次へ進みます。

f:id:sig9:20200215163929p:plain:w800

Step.1-2

画面中央にある Apply for a developer account をクリックして次へ進みます。

f:id:sig9:20200215163932p:plain:w800

Step.1-3

Twitter API の利用目的を選択します。 今回は Building tools for Twitter users を選択しました。 画面右下の Next をクリックして次へ進みます。

f:id:sig9:20200215163935p:plain:w800

Step.1-4

今回は有効な電話番号を追加するように警告が表示されました (未確認ですが Twitter アカウントに電話番号を追加済みであれば、もしかするとこの項目は表示されないのかも知れません)。 画面中央の Add a valid phone number をクリックして次へ進みます。

f:id:sig9:20200215163939p:plain:w800

Step.1-5

国/地域を選択した後、有効な電話番号を追加します。 今回は Japan を選択し、更に有効な電話番号を入力しました。 国際表示の電話番号を入力した方が良さそうでしたので、例えば携帯電話番号が「070-ABCD-EFGH」(アルファベット部分は、実際には数字) であれば最初のゼロは取り、「70ABCDEFGH」と入力します。 国 / 電話番号の入力が完了したら Next をクリックして次へ進みます。

f:id:sig9:20200215163942p:plain:w800

Step.1-6

前のステップで指定した電話番号宛てに、確認用コードが SMS で送信されるはずです。 この確認コードを控えておきます。

f:id:sig9:20200215163945p:plain:w400

Step.1-7

Validation code へ前のステップで控えた確認用コードを入力します。 入力が完了したら Verify をクリックして次へ進みます。

f:id:sig9:20200215163949p:plain:w800

Step.1-8

正しい確認用コードが入力されたら Your phone number is now verified と表示されました。

f:id:sig9:20200215163952p:plain:w800

Step.1-9

画面下部へスクロールし、下記の項目を入力します。

  • Waht country do you line in?
  • Waht would you like us to call you?
  • Waht updates about the Twitter API?

今回は Japan、表示名は任意、アップデートのお知らせは チェック としました。 入力が完了したら Next をクリックして次へ進みます。

f:id:sig9:20200215163955p:plain:w800

Step.1-10

Twitter API を利用する目的を In your words に入力するよう求められます。 アルファベット 200 文字以上で入力します。

f:id:sig9:20200215163958p:plain:w800

必須ではありませんが、他にも以下の入力項目があります。 必要に応じて入力します。 不必要であればスイッチをオフにします (必須状態のままだと Next がクリック出来ません)。

  • Are you planning to analyze Twitter data?
  • Will your app use Tweet, Retweet, like, follow, or Direct Message functionality?
  • Do you plan to display Tweets or aggregate data about Twitter content outside of Twitter?
  • Will your product, service or analysis make Twitter content or derived information available to a government entity?

必要な情報の入力が完了したら Next をクリックして次へ進みます。

Step.1-11

入力した値の確認画面が表示されます。 問題無ければ Looks good! をクリックして次へ進みます。

f:id:sig9:20200215164001p:plain:w800

Step.1-12

Twitter API のライセンス条項への同意を求められます。 ライセンスを読んだ上で、内容に問題が無ければ画面下部にあるチェックボックスにチェックを入れ、Submit Application をクリックして次へ進みます。

f:id:sig9:20200215164006p:plain:w800

Step.1-13

これで申請は完了しました。

f:id:sig9:20200215164009p:plain:w800

Step.1-14

すぐに Twitter から下記のようなメールが届くはずです。 メール本文中にある Confirm your email をクリックして次へ進みます。

f:id:sig9:20200215164012p:plain:w400

Step.1-15

これで登録は完了です。 ネットの情報だと、ここで「Application Under Review 状態になる」という情報も見かけたのですが、私の場合はそうならず、すぐに登録完了してしまいました。

f:id:sig9:20200215164015p:plain:w800

2.アプリケーションを作成する

次は簡単な Python アプリケーションを作成してみます。 Python スクリプトでは tweepy を利用します。 また、スクリプトから Twitter API を呼び出す際に下記の情報が必要になるので、これらを取得していきます。

  1. Consumer API key
  2. Consumer API secret key
  3. Access token
  4. Access token secret

Step.2-1

get-started ページにアクセスし、Create an app をクリックして次へ進みます。

f:id:sig9:20200219234746p:plain:w800

Step.2-2

右上の Create an app をクリックして次へ進みます。

f:id:sig9:20200219234751p:plain:w800

Step.2-3

これから作成するアプリケーションの情報を記載します。 最低限、必須 (Required) なフィールドへ情報を入力します。 App name は全ユーザの全アプリケーション間で一意である必要があります。 必要な情報を入力し終わったら、一番下にある Create をクリックして次へ進みます。

f:id:sig9:20200219234756p:plain

Step.2-4

ライセンス条項や注意が表示されます。 処理を自動化するアプリケーションの場合、Automation Rule に抵触しないよう、留意する必要があります。 Create をクリックして次へ進みます。

f:id:sig9:20200219234804p:plain:w800

Step.2-5

アプリケーションが作成されました。 画面上部にある Keys and tokens をクリックして次へ進みます。

f:id:sig9:20200219234807p:plain:w800

Step.2-6

デフォルトの状態では下記のふたつが存在します。

  1. Consumer API key
  2. Consumer API secret key

Access token を発行する必要がある為、画面右側の Generate をクリックして次へ進みます。

f:id:sig9:20200219234811p:plain:w800

Step.2-7

下記が発行されるので控えておきます。

  1. Access token
  2. Access token secret

f:id:sig9:20200219234815p:plain:w800

Step.2-8

Python スクリプトから利用出来るよう、tweepy をインストールしておきます。

pip install tweepy

Step.2-9

フォローしている方を取得するスクリプトを作成してみます。 下記、5 つの情報は自分の環境に併せて入力します。

  1. Consumer API key
  2. Consumer API secret key
  3. Access token
  4. Access token secret
  5. Twitter ID
#!/usr/bin/env python

import tweepy


API_KEY = 'abc...'
API_SECRET = 'abc...'
ACCESS_TOKEN = '123...'
ACCESS_SECRET = '123...'
TWITTER_ID = '@...'

cursor = -1
while cursor != 0:
    auth = tweepy.OAuthHandler(API_KEY, API_SECRET)
    auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
    api = tweepy.API(auth, wait_on_rate_limit=True)
    itr = tweepy.Cursor(api.friends_ids, id=TWITTER_ID, cursor=cursor).pages()
    try:
        for friends_id in itr.next():
            try:
                user = api.get_user(friends_id)
                user_info = [user.id_str, user.screen_name, user.name]
                print(user_info)
            except tweepy.error.TweepError as e:
                print(e.reason)
    except ConnectionError as e:
        print(e.reason)
    cursor = itr.next_cursor