データ分析

Twitter Developerの登録手順と、APIでツイート取得するまでの記録。

2019年11月12日

eyecatch

 

こんにちは!@pocco_apです。ブログ訪問ありがとうございます。

 

2019/10〜 ブログ開設と同時にTwitterも始めました(@pocco_ap)。

 

Twitterをやっていて疑問に思ったのが、フォロワー1000人超えの方でもツイートごとの「いいね!」や「リツイート」の数にばらつきがあること。

これは何故なのかデータを使って分析・説明できれば、私が今後Twitterを続けていくうえで無駄撃ちを少なくできるのでは・・・と思いました。

統計検定・Pythonの勉強にもなりそう!

 

しかし、Twitter APIを使って各種データを取得するためには、Twitter社からアクセスキーを発行してもらわないといけません。

調べてみると審査がなかなか面倒くさそう・・・でしたが、比較的あっさり申請が通りました

 

本投稿では、Twitter Developerの申請〜登録から、実際にAPIを使ってツイートデータを取得するまでの流れを記載します

 

 

Twitter Developer登録までの流れ

巷では審査が厳しいと言われる、Twitter Developer登録までの全体の流れは次の通り。

Twitter Developer登録までの流れ

  • Twitterのアカウント開設 (言わずもがな・・・)
  • Twitter Developerサイトで開発者アカウント登録申請
  • (必要があれば) Twitter社とメールで詳細のやり取り
  • Approved!登録完了!

 

私の場合は、申請〜登録完了(Approved)まで1週間くらいかかりました。

Approvedまでの期間

  • 2019/10/28:Developerサイトで申請提出
  • 2019/10/29:Twitter社から使用用途の詳細確認メールを受信 (しかし見落とし・・・)
  • 2019/10/31:使用用途の詳細(?)を記載してメールを返信
  • 2019/11/01:Approved!のメールを受信

③のメールを見落としていたためちょっと間が空きましたが、普通に対応すれば1〜2日で登録できるのではないでしょうか。

 

それでは、次に各申請の詳細を記載します。Twitterのアカウント開設は省略します・・・!

 

Twitter Developerサイトで申請提出

step
1
Developerサイトにアクセス

Twitter Developerのサイトにアクセスします。

DeveloperサイトTOP

右上の「Apply」をクリック!

 

step
2
Applyページから登録ページに

「Apply for a developer account」をクリック!

 

step
3
Developer toolsの主な使用用途を選択

Main Usage

私はAPIを使いたいだけなので、特に何も考えず「Exploring the API」を選択しました。

 

step
4
本人確認?

thisisyou?

本人確認のようなページに遷移しますが、ここも特に何も考えず「Country:Japan」「Username:pocco_ap」と記載し次のステップに進みます。

 

step
5
【難所】使用用途の英作文

ここが最大の難所、「API使用用途の英作文」です。Google翻訳に(ほぼ全て)頼りながら、200語+100語の英作文をしなければなりません・・・。

Usage英作文

ちなみに私は当初の目的通り、次のように書きました。

【Plan to use Twitter data and/or APIs】

I plan to collect and analyze tweet data and use it for SNS marketing of personal blogs. For example, based on the tweeted content of the influencer, I will guess the time zone when "LIKE" is likely to occur, analyze what keywords are likely to be "RT", and make my own action plan. The Twitter APIs will be used to get influencer timeline information.

【Plan to analyze Twitter data】

Based on tweeted content of the influencer, I will guess the time zone when "LIKE" is likely to occur, analyze what keywords are likely to be "RT", and make my own action plan.

ひどい英語力で草!w

 

(ほぼ全てをGoogle翻訳に頼りながら)苦労して完成させた、中学生のような英作文を提出します。

 

step
6
Developerサイトからの申請完了!

確認画面に遷移するので、「Looks good!」をクリックします。

「You did it!」の画面までたどり着いて、Developerサイト上の申請フローは終了です。

Youdidit!

 

あとは審査結果を待つのみ!

 

【審査落ち?】翌日、Twitter社から内容について確認メールが届く

Developerサイトの申請で、しっかり使用用途を記載できていればそこでApprovedなのでしょう。

しかし、私の場合はTwitter社から翌日「ちょっと何言ってるか分からない」とメールが来ました。

mailfromTwitter

 

その2日後にメールに気づき、

英作文書かせたのに、メールめっちゃ日本語じゃないですかあ・・・。

と思いましたが、これに返信しなければ審査は通りません。

 

そっちが日本語なら私も日本語で返してやる!と、次のようなメールを返信しました。

【Twitter APIを使用する中核的な使用目的、意図、ビジネス上の目的。】
APIを利用してインフルエンサーのツイートに関するデータ(ツイートの内容、投稿時間、RT数、いいね数、など)を取得し、分析によってどのようなツイート内容、時間帯などが好まれるのか、インサイトを得ることが中核的な使用目的です。特定のジャンルのインフルエンサー数人にのみフォーカスして分析を行うため、貴社のサーバーに負荷のかかる程度のAPIリクエストはいたしません。あくまで個人的な利用に留めます。

【ツイート、Twitterアカウント、またはそのコンテンツを分析する場合は、実施する分析の内容と手法または技術について詳しくお教えください。 】
Pythonのプログラム、ライブラリを利用して APIからJSONを取得します。取得したデータについては、同様にPythonのライブラリを利用して統計分析する予定です。

【ツイート、リツイート、いいねの使用が含まれる場合は、Twitterアカウントまたはそのコンテンツに対してどのような操作を行うのかをお教えください。】
APIを利用したツイート、リツイート、いいねの使用する予定はございません。統計分析に

【TwitterコンテンツをTwitter以外で表示する場合は、お客さまの製品またはサービスで、ツイートおよびTwitterコンテンツがどこにどのように表示されるかを、行レベルの表示か集計表示かを含めてご説明願います。】
TwitterコンテンツをAPIを利用して、外部コンテンツに表示することはありませんが、分析した結果を個人が運営するブログに掲載させていただくことは将来的に予定しております。その際、APIを用いた行レベルの表示ではなく、あくまで私個人のローカル環境で、取得したデータを統計分析した結果のみを利用させていただきます。

 

3つ目の質問に対する回答が途中で切れていることに気づいたのは、送信後でした。

これはまた落ちるやつだ・・・

 

ところが翌日・・・

 

Approved!

翌日、というより2時間後(深夜1時頃)くらいに「Your Twitter developer account application has been approved!」のメールが届きました。

approved

 

Twitter社からのメールに返信することが大事なんですかね。

とりあえず、これでTwitter APIを利用してデータ収集を開始できます。

よかったよかった!

 

Twitter APIを使って、タイムラインのツイートを取得してみる

めでたく開発者登録できたので、さっそくタイムラインの情報をAPIで取得してみます。

TweepyというPythonのライブラリが使いやすそうなので、とりあえずこちらを使います。

そのままAPIを叩くと、JSONがどっさり返ってきて戸惑います・・・

 

初めてAPIでタイムラインを取得する際には、次のステップで作業が必要です。

初めてTwitter APIを使うまでの流れ

  • Twitter Developerサイトで各種キー・トークンの取得
  • Tweepyのインストール (Jupyter notebookなどのPython実行環境構築はできている前提で)
  • Tweepyをimport、キー・トークンをセットして、APIを呼び出し

 

それでは、次に各申請の詳細を記載します。

 

Twitter Developerサイトで各種キー・トークンの取得

Twetter APIを呼び出しするためには「アクセスキー」「アクセストークン」が必要になるので、Developerサイトからこれらを取得します。

 

step
1
Developerサイトにアクセス

再度、Developerサイトにアクセスします。右上のアカウント名にカーソルを合わせると、プルダウンが表示されるので「Apps」をクリックします。

Apps

 

次の画面では「Create an App」をクリックします。

create_app

 

step
2
またしても、英作文・・・

開発者アカウントの申請と同様に、ここでも使用用途などの英作文を求められます。

しかし、今回は審査はなさそうなので、メールで送った日本語をGoogle翻訳からコピーして貼り付けます。

app_usage

 

サイトURLの箇所は「https://pocco.net/」を入力して、英作文は次のように記載しました。※App Nameは実際のものと異なります。

【Application description】

Get various data about tweets from Twitter timeline. The acquired data is used for analysis using Python.

【Tell us how this app will be used】

I use APIs to get data about influencer tweets (tweet content, post time, RT count, likes, etc.) and further analyze them to see what tweet content, The main purpose of use is to gain insights. In addition, I focus on only a few influencers of a specific genre, so I do not make API requests that would put a heavy load on your server.

 

次の画面に進む際に規約事項のポップアップが表示されますが、確認したら「Create」をクリックします。

checkbox

 

step
3
アクセスキー・トークンの取得

Step2で「Create」をクリックすると、そのままApps detailのページに遷移します。

app_page

 

このページの上部にある「Keys and Tokens」をクリックすると、APIのキー・トークン取得ページに切り替わります。

keys_tokens1

 

Access token & access token secretの「Create」をクリックすると、トークンを取得できます。

keys_tokens2

 

以上でアクセスキー・トークンの取得は終わりです。API呼び出しで使うので、大事にメモしておきましょう

 

Tweepyのインストール

ターミナルで以下のコマンドをコピペして実行するだけです。

> pip install tweepy

 

Jupyter notebookを使ってTwitter APIを呼び出してみる

Tweepyをインストールできたので、Jupyter notebookなどのPython実行環境からAPIを呼び出ししてみます。

試しに、私のアカウント(@pocco_ap)のツイート時間、ツイート内容、いいね数、RT数を取得してみます。

 

ソースコードのサンプルは、次の通りです。

スクリーンネームを変えれば、たぶん他のアカウントのツイートも取得できるはず・・・?

import tweepy
import datetime
import pandas as pd

## 認証処理
consumer_key = "<取得したkey>"
consumer_secret = "<取得したkey>"
access_token_key = "<取得したkey>"
access_token_secret = "<取得したkey>"

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token_key, access_token_secret)
api = tweepy.API(auth)

## 取得対象のスクリーンネーム
screen_name = 'pocco_ap'

## ツイート取得
tweet_data = []
for tweet in tweepy.Cursor(api.user_timeline,screen_name = screen_name,exclude_replies = False).items():
        tweet_data.append([tweet.id,tweet.created_at+datetime.timedelta(hours=9),tweet.text.replace('\n',''),tweet.favorite_count,tweet.retweet_count])

columns_name = ["ツイートID","時間","text","fav", "RT"]        
df = pd.DataFrame(tweet_data, columns=columns_name)

df

 

実行結果は、こんな感じになりました。よわよわアカウントというのが丸わかりですね!

api_response

 

Twitterでもっと効率的に発信していかなければ、と痛感しました!

 

おわりに

Twitter Developerの申請〜登録、実際にAPIを使うまでをまとめました。

気づけば6000文字オーバーの超大作に・・・疲れました!笑

 

「これからTwitterでデータ分析をしたい」という方のお役に立てたら幸いです。

ご指摘等あれば、ぜひTwitterでご連絡ください!

 

 

  • この記事を書いた人
  • 最新記事
しよこ

しよこ

ゆるりと楽に生きたい20代ITえんじにあ。ITのことはよく分からない。ライターをやったり、Web開発をやったり、投資をやったり、興味が散らかりがち。最近はペンタブに挑戦中・・・。

-データ分析
-, , ,

Copyright© pocco log , 2020 All Rights Reserved.