Twitter API を利用するには

# 初めに
Twitter APIを使うまでの手順のまとめになります。
Twitter Devへの申請やAPIキー、トークンの取得方法などを記載しております。
Twitter Botやアプリ開発などで必要となるので参考になればと思います。
あくまで、Twitter APIを使うことを第一の目的としておりますので、細かな部分は省略しております。
# TwitterのAPI利用申請
1.Create APPボタンを押してみよう！

twitterにログインした状態で、[Developerサイト](https://developer.twitter.com/en/portal/projects-and-apps)へアクセスします。
アクセスすると以下の画面のように表示されます。
(既に登録されている方は、[各Tokenの取得方法](# 各Tokenの取得方法)の画面になります。）
![Screen Shot 2021-06-22 at 22.20.51 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/45acf0d3-7464-73f4-d821-3146b5f80432.png)
この画面になりましたら、「Create App」を押します。
押すと以下のような画面になるので「Apply」を押しましょう。

2.Developer Toolの利用目的を選択しよう！

Applyボタンを押すと以下の画像のような画面になります。
![Screen Shot 2021-06-22 at 22.41.10 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/cbd6dbc4-7220-077d-3e9f-4791dc6e8690.png)

ここではtwitter APIをどのような目的で使いたいかを問われております。
今回は「Hobbyist」の「Exploring the API」を選択しましょう。
![Screen Shot 2021-06-22 at 22.43.49 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/ffada9ee-51e1-0e39-958d-21d676a37209.png)

その他の「Professional」や「Academic」を選択すると、後々に出てくる利用目的を書くところで、難易度が爆上がりします・・・

3.住んでいる国とニックネーム(アルファベット）を記入しよう！

「Get started」のボタンを押すとユーザーの基本情報が出てきます。
![Screen Shot 2021-06-22 at 22.48.23 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/f5293c07-9f92-e742-165b-2fe962cfef39.png)
ここで、住んでいる国やニックネームを登録をします。
が、その前に、今ログインしているTwitterのアカウントで「メールアドレス」及び「電話番号」の登録ができていない人は画像のように要求がされますので、登録しましょう。
ここで注意点があります。
複数のアカウントを持っている方において、メールアドレスは他のアカウントで登録しているメールアドレスとは異なるものを使用してください。
メールアドレスと電話番号を登録し、住んでいる国、ニックネームを記載したら、Nextボタンを押しましょう！
（一番下にチェックボックスがありますが、そこは「最新のTwitter APIの情報を届けますか？」という項目のため、欲しい人だけチェックを入れてください。）

4.英文でTwitter APIの利用目的を書こう！（以下で出てくる英文を参考にしてOK）

Twitter Devの申請において、一番厄介な部分がここになります。
ここでは全て英文で利用目的などを記述していく必要があります。一つ一つみていきましょう！
まず一つ目「How will you use the Twitter API or Twitter Data?」
![Screen Shot 2021-06-22 at 23.04.24 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/37f49439-33d9-2757-9bac-d674a7b1a6f4.png)
ということで、「Twitter APIやTwitterのデータをどういうことに使うつもりですか？」と聞かれております。
ここでは、以下のように答えました。

1.I want to use Twitter API to automatically display records posted from my web application onto Twitter timeline.
2.I want to automatically display them on the Twitter timeline once a day.
3.Even if I use Twitter's API to get contents from Twitter, I will not display them outside of Twitter.
(1.私のウェブサイトに投稿した記事をTwitterのAPIを利用して、Twitterのタイムラインにも自動的に表示されるようにしたい。
2.Twitterのタイムラインに自動的に表示させるのは1日に1回程度です。
3.Twitter APIを利用しTwitterからのコンテンツを取得して、Twitter以外で表示させることはありません。)
となります。この英文も参考にして書いてみましょう！

それでは次にいってみましょう！
二つ目は、「Are you planning to analyze Twitter data?」
![Screen Shot 2021-06-23 at 0.21.40 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/92f23aab-d050-3756-7028-0e22f9cf45b4.png)
ここでは、「Twitterのデータを分析するつもりですか？」と聞かれています。パッとみた感じはよく分かりませんが、つまり言いたいことは、impressionが大きい数字になったツイートや、RTやいいねの数の多いツイートとそうでないツイートなどを分析したいかどうか？ということになりますので、ここはyesにチェックを入れましょう！
その下にある「Please describe how you will analyze Twitter data including any analysis of Tweets or Twitter users.」についてですが、「どうやってTwitterのデータを分析するのか記述してください」と書かれてありますので、以下のように答えました。

I want to analyze the tweets that are popular with users that are automatically tweeted using Twitter API from my website.
（ウェブサイトからの自動ツイートで、ユーザーに人気のあるツイートを分析したい）
ここもとりあえずの回答で良いので、参考にしてパパッと書いちゃいましょう！

それでは三つ目、「Will your app use Tweet, Retweet, Like, Follow, or Direct Message functionality?」![Screen Shot 2021-06-23 at 0.30.37 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/88d6437a-39c1-42dd-1d07-fc12d77a16a7.png)
「あなたはツイート、RT、いいね、フォローそしてDMなどの機能を使いますか？」と書いてあります。ここはもちろん使うのでYESにしましょう。
その下の「Please describe your planned use of these features.」ですが、「これらの機能をどうやって使いますか？」と聞かれています。なかなか抽象的な問いですが、自分の言葉で置き換えて「どのような目的で使いますか？」と判断しました。そのため、以下のように答えてあります。

I want to spread and share my various records with my app. And in the future, I want to use my app which records parts of life by my followers.
(アプリを使って色んなことを記録したものを拡散、共有したいです。そして、生活習慣の一部を記録できるアプリをフォロワーに使ってもらいたいと思っています。）
これも参考にして大丈夫です！

それでは四つ目、「Do you plan to display Tweets or aggregate data about Twitter content outside Twitter?」
![Screen Shot 2021-06-23 at 0.40.32 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/953c66ba-0b94-b3ae-2341-a9a5bc6b7c4b.png)
これは「Twitter以外のTwitterコンテンツに関するツイートを表示したり集計データを表示するか？」ということで、利用しないのでNoで良いと思います。

最後五つ目、「Will your product, service, or analysis make Twitter content or derived information available to a government entity?」
![Screen Shot 2021-06-23 at 0.46.30 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/8958f660-f54b-c409-7ea2-fc2c00926c6b.png)
「あなたの製品・サービス，または分析によって，Twitterコンテンツまたは派生情報が政府機関が利用可能になりますか？」ということで、かなり大ごとな雰囲気が漂っていますが、こちらも利用しないのでNoで良いです。

それではNextボタンを押して進みましょう！

5.確認画面で内容を確認し、利用規約に同意しよう！
確認画面が表示されたら、確認しましょう。問題なければ、Nextボタンを押して次へ進みましょう！
![Screen Shot 2021-06-23 at 0.50.19 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/289461f6-6aab-5b4f-d66c-7d8edc3a5587.png)
すると、利用規約の画面に移るので、チェックボックスにチェックを入れて、「Submit application」ボタンを押しましょう。
![Screen Shot 2021-06-23 at 0.53.22 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/6fcf48d1-27a1-0678-d976-81de5900b82e.png)
すると、メールアドレスの確認用メールを送付したと書いてある画面へ移りますので、登録しているメールアドレスを開き、届いたメールの「Confirm your email」ボタンを押して完了です！！
![Screen Shot 2021-06-23 at 0.55.21 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/16990d10-a2be-0ad9-c5d9-d27634204912.png)

ここまでお疲れ様でした。
ではそのままTokenの取得へいきましょう！


# 各Tokenの取得方法
1.Dashboardの画面に映ろう！
Twitter Devの申請が完了し、メールアドレスに届いていた確認用メールを確定すると下の画面に移ります。もし、その画面を消した人はtwitterにログインした状態で、再び[Developerサイト](https://developer.twitter.com/en/portal/projects-and-apps)へアクセスします。
アクセスすると以下の画面のように表示されます。
![Screen Shot 2021-06-14 at 23.53.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/09e33b21-c3d0-1187-be72-b8b735ed4144.png)
この画面が表示されたら、いよいよTwitter APIを使ったアプリを作成します。

2.Create Project を押してみよう！
ということで、上記の画面の中央にある「Create Project」を押してみましょう。
すると、以下の画面へと進みます。
![Screen Shot 2021-06-14 at 23.53.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/f96dc2f5-b90d-6aaa-2404-2a643f3f61ea.png)
私の場合は、筋トレのアプリをゆくゆく作ろうと思っているので、プロジェクト名は「training app」としております。
が、皆さんは適宜、自由な名称で良いかと思われます。
（ちなみに名称は後ほど変更できます。）
プロジェクト名を決めましたら、次へ進みましょう！

3.Twitter APIを使う目的を決めよう！
上記の画面にある「Next」を押すと以下の画面になります。
![Screen Shot 2021-06-22 at 20.40.38 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/0308b30f-453f-3f61-c294-2a7feb2e770c.png)

ここでは、Twitter APIを使う目的はなんですか？とのことで、「学術的な調査」や「botを作ること」など色々な項目があります。ここでは「Exploring the API」を選択しましょう。意味合い的には、「APIを試しで使ってみること」になります。
それでは次に進みましょう！

4.プロジェクトについて記述しよう！
上記の画面にある「Next」を押すと以下の画面になります。
![Screen Shot 2021-06-14 at 23.54.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/89032e90-80e0-991f-f295-850cf47035e7.png)


ここでは、「作成するプロジェクトについて記述してください」とのことでちょっとした英作文になります。
私の場合は、「トレーニングの記録をフォロワーへシェアするためのプロジェクトで、これをフォロワーへ提供したい」と言ったような記述にしております。
（英文は以下：
This project is that I share my records of muscle training for my followers and i want to odder my app.）
が、ここも適宜自由に作成してください。
私の英文をコピペし、若干内容を変えるだけでも問題ありません。
（ちなみに、ここも後で編集できますので、難しく考えないでください。）
英作文が終わったら次へ進みましょう！

5.アプリを追加しよう！
これでTwitter Dev申請の最後になります。次へ進むと以下のような画面になります。
![Screen Shot 2021-06-14 at 23.58.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/69667e20-3a81-fc1b-55b7-00891251c233.png)

ここでは、アプリ名を記載します。一番初めに登録したプロジェクト名とはまた別のもので、プロジェクトの中にあるアプリという扱いになります。
ここも、適宜自由に名前を決めてください。
ここが終わると完了です！

6.APIトークン,APIトークン Secret, Bearer Token,Access Token and Secretを確認しよう！
申請が完了すると、各Tokenが表示された画面へと移ります。
![Screen Shot 2021-06-14 at 23.58.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/3ce8a6ec-8122-49c9-06fa-b7112905cfbd.png)
画像は白抜きになっておりますが、実際は文字列が書いてあるので忘れずに保存しておきましょう！
保存したら、右上の✖️を押して、Dashboardへ戻ります。
Dashboardへ戻ったら、中央付近にある「PROJECT APP」の右側に鍵マークがあるのでそこを押しましょう！
そうすると、以下の画像のような画面になりますので、そこの一番下にある「Access Token and Secret」の右にある「Generate」を押して、Tokenを作成しましょう。
![Screen Shot 2021-06-22 at 21.44.58 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1579092/d06059cf-1c1e-08fd-6057-adcab3560f69.png)
私の場合は既に作成しているため、「Regenerate」「Revoke」となっております。

#最後に
以上で、Twitter APIを利用するまでの流れとなります。
長い記事ですが、最後までお付き合い頂き、ありがとうございました。
# 参考資料
[2021年度版 Twitter API利用申請の例文からAPIキーの取得まで詳しく解説](https://www.itti.jp/web-direction/how-to-apply-for-twitter-api/)