【TwitterAPI申請編】WordCloudでTweetを可視化して楽しもう

# はじめに
**"条件にあったツイートを収集して、好きな画像を背景に可視化しませんか？"**

Pythonを勉強した後に「次何しようかな」「何かサクッと面白いもの作れないかな」
なんて考えたことありませんか？
機械学習は難しいし、Webスクレイピングで何を取得するのが楽しいかな...みたいな。

そこで、「Twitterで最も多く呟かれた単語(形態素)を解析して可視化してみよう。」
というわけです。

---
Qiitaなどで記事を書くのは初めてなので、投稿へのアドバイスなどあれば教えてもらえると嬉しいです！
直接お伝えしたい質問などもお気軽にどうぞ！
【Twitter】
https://twitter.com/PomericanCoffee


# 最終目標
以下のような画像を生成するのが最終目標です。
![ikoma_cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613121/7130db94-bc5d-c717-1abf-823cea78706d.png)
上記の画像は、[5月に開催された乃木坂46のライブ](https://www.nogizaka46.com/s/n46/page/10th_birthday_live)の感想ツイートを収集して、
生駒ちゃんを背景に可視化したものです。

# 身につく技術と活用方法
最終目標を達成することで以下の技術が身につけられます。
- Pythonの文法
- Twitter APIの活用方法(Twitter API v2)
- 形態素解析の基礎
- WordCloudでの可視化方法

後述の目次を見てもらうと分かりますが、○○編と分かれています...ので
興味のある箇所だけ読むのもありです！(WordCloudだけやってみようなど)

# 目次
1. [TwitterAPI申請編](#) ⏪ 今回はココ！
2. [Tweepy編](https://qiita.com/Pomerican/items/f9e05bcb19b32172c09b)
3. 形態素解析・Mecab編
4. WordCloud表示編
5. 最終目標・Tweet可視化編

# Twitter APIの申請をしよう
① まずは[Twitter Developers](https://developer.twitter.com/en/apps/)にアクセスしましょう。
(API申請したいアカウントでログインするように頑張ってください)

② Portalの右上「**Create an App**」を押下して次の画面に進みます。
何か表示されたら「Apply」でOKです。
![スクリーンショット 2022-09-08 23.15.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613121/8b37c2a0-a604-6a33-e525-1efa1d2eb794.png)

③ 次の画面ではいくつか質問が表示されます。
Twitterでの設定内容が自動反映されますが、残りの項目は以下のように答えていきましょう。
- お住まいの国はどちらですか？
    - **Japan**

- 使用用途はなんですか？
    - **Exploring the API**

- 政府が利用できるようにしますか？
    - **No**
![スクリーンショット 2022-09-09 0.23.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613121/5a281d89-3177-dc07-d24c-f23c51d7895d.png)
更新情報とかニュースを受け取りたいよ、って方はチェックボックスも入れておきます☑

④ ポリシーの同意を求められるので「Accept Terms & Conditions」にチェックを入れて**Submit**です。
![スクリーンショット 2022-09-14 23.01.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613121/a20a741b-f524-954b-bb27-fe39cb388cb7.png)
※ここで以下のようなエラーが発生しました。
![スクリーンショット 2022-09-14 22.57.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613121/da84ccc1-2a04-e388-1d99-452342bfbafa.png)
💡電話番号の登録が必要でした。 ※10アカウントまでは同じ電話番号使えるみたいです。
> メールアドレスがない場合は「User must have a verified email...」が出ると思うので登録しましょう。

⑤ メールアドレスに認証用のメールが届いているので、開いて認証しましょう。
![スクリーンショット 2022-09-14 23.12.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613121/b92a47fb-7394-097d-9592-9a4419468866.png)

⑥ 認証したらお好きなアプリ名を入れて「**Get keys**」を押下です。
⇨ 自分は「PomeApp」という名前で作成しておきます。
　![スクリーンショット 2022-09-14 23.27.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613121/79b261ee-4b35-fb88-e730-c06fe4591600.png)

次の画面でAPIを利用するためのAPIキーが表示されるのでメモしましょう。

![スクリーンショット 2022-09-14 23.37.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613121/0ae8c539-a33d-4bb0-aaab-76e6c4d9e111.png)
メモし終えたら「**Dashboard**」を押下して「**Yes, I saved them.**」です。

⑦ 最後に[*Access Token*]と[*Access Token Secret*]を確認していきましょう。
「Projects & Apps」から⑥の手順で入力したアプリ名を選択します。
赤枠の箇所からKeys and tokensに切り替えて、
黄枠の「**Generate**」を押下すると生成されるのでメモしましょう。
> ここで「Regenerate」するとAPIキーが再生成できます。

※デフォルトでは**読み取り専用**の権限のAPIキーを生成しています。
　書き込み権限も必要な場合、⑧と⑨の手順も行なってください。

![スクリーンショット 2022-09-14 23.58.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613121/aa0d0f90-bc37-0f5d-f926-426d8ca3423d.png)

⑧ (書き込み権限が欲しい場合)アクセス権限を変更していきましょう。
Settingsに切り替えて「**User authentication settings**」のEditを押下しましょう。
![スクリーンショット 2022-09-21 16.36.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613121/ee21ab20-3ed0-582d-1167-2963beae0d02.png)

いくつかの項目の入力を求められますが、以下のように選択・入力していきます。
- App permissions
    - Read and write
- Type of App
    - Native App
![スクリーンショット 2022-09-21 17.47.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613121/37a98fd8-a6b2-7c67-c3a2-65785ef4df80.png)
- App info
    - https://<span>127.0.0.1:3000</span>/cb ※このまま貼り付けでOKです
- Website URL
    - https://<span>twitter.com</span>/@以降のユーザー名
![スクリーンショット 2022-09-21 17.51.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613121/c2ac4ea1-2a31-636b-ea4e-67c49fa44f0b.png)

⑨ [*Access Token*]と[*Access Token Secret*]を再生成します。
新たに書き込み権限を追加したので、再生成する必要があります。
> Regenerateすると「Created with Read and Write permissions」という表記に変わります。
![スクリーンショット 2022-09-21 18.42.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613121/a9f30fae-786a-0d16-09eb-6e2957f6c0ef.png)
###### これでTwitter APIの申請は完了です！ お疲れ様でした。

# おわりに
今回はTwitter APIの申請を行いました。
数年前に使ったときは、英語で使用用途を書いて申請する...などがあり苦戦していたものですが
(これで申請が通る！みたいな攻略記事もありました笑)
Twitter API v2では行うことなく色々できそうなので安心しました。

分かりにくい箇所等あれば、ぜひコメントやTwitterなどで教えてもらえると嬉しいです！
直接お伝えしたい質問などもお気軽にどうぞ！
【Twitter】
https://twitter.com/PomericanCoffee

次回は**Tweepyの導入と活用**を行なっていきます。