「高専キャリア クラウドAI開発講座」_Twitter API 登録編

#どんな記事？
この記事では「高専キャリア クラウドAI開発講座」というイベントの進捗を書き記しています。

**今回は、クエストの中で特に時間のかかった「TwitterAPI登録」の方法について、開発者登録からAPIキーの取得まで書いています。**

記事一覧↓
1. [「高専キャリア クラウドAI開発講座」に参加してみた](https://qiita.com/nomukoh/items/dd2bd4abed2075ff62ba)
2. [「高専キャリア クラウドAI開発講座」_中間報告会編](https://qiita.com/nomukoh/items/aa920b6f0dac29a83e89)
3. [「高専キャリア クラウドAI開発講座」_Twitter API 登録編](https://qiita.com/nomukoh/items/1032a62ab5b357029856) **→今回の記事**
4. [「高専キャリア クラウドAI開発講座」_最終報告会編](https://qiita.com/drafts/0d71064cbabc5e3b360c) 

###目次

1. [進捗報告](#進捗)
2. [Twitter Developer の登録方法](#twitter-developer-登録)
3. [APIキー, アクセストークンを入手する](#apiキー-アクセストークンを入手する)
4. [Bot作成で参考にした記事](#botを作りたい方は)

#進捗
前回までに、AzureのBot Frameworkを使っておうむ返しボットを作りました。

今回で、目標だった[おーちょさんのQiita記事](https://qiita.com/miokawa/items/6f1a3e480580e1e29abc)のBot完成しました！！！
上級クエスト「Teams BotをAzure上で作り、AzureのAIを使っておしゃべりさせる」… **攻略完了！**
![hagemashiBot](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668177/0fd18e70-620a-5e4b-49f1-ce0c45491ddf.png)

#Twitter Developer 登録

※内容は2021/03/21のものです

####ログイン
まずはじめに[TwitterDeveloperのサイト](https://developer.twitter.com/)へ行き、Botと関連付けたいアカウントでログインします。僕は新しくアカウントを作りました。
####appの用途選択
右上の「apply」をクリックし、次ページで「Apply for a developer account」をクリックして進みます。
![applicationSelection1](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668177/13f67f97-fd21-7129-6502-6ab26d6f4b38.png)
あなたは誰かと聞かれるので、「Hobbyist」→「Exploring the API」を選択して「Go Started」をクリックします。
(その他、選択できるのは「Professional」...仕事でエンジニアさんが使う用, 「Academic」...先生や学生が勉強として使う用)
![applicationSelection2](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668177/16fc7932-7007-c8d9-20c7-d645716233bf.png)
####開発者情報登録
 - 登録するツイッターアカウント
 - メールアドレス
 - Individual developer account (訳：個人の開発者として登録されています)

などが書かれています。電話番号をツイッターアカウントに登録してないと赤字が出るので、「Add a valid phone number」をクリックして登録します。

 - **What would you like us to call you?**　(あなたの名前は？) - 何でもいいです
 - **What country do you live in?**　(どこの国に住んでいますか？) - Japan
 - **What’s your current coding skill level?**　(プログラミングスキルはどのくらいですか？) - 「No experience」(やったことない) / 「Some experience」(ちょっとだけ) / 「Highly experienced」(バリバリやってる) | どれかを選択します
 - **Get the latest Twitter API news?**　(APIのニュースを送りましょうか？) - どちらでも
![developerInformation](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668177/a718cd13-e771-6673-47ae-19486f635564.png)

####作るものの詳細登録

ここがいちばん大変でした...

 1. **How will you use the Twitter API or Twitter Data?**　(Twitterのデータどう使おうとしてるの？)
 2. **Are you planning to analyze Twitter data?**　(Twitterのデータを分析しますか？)
 3. **Will your app use Tweet, Retweet, Like, Follow, or Direct Message functionality?**　(ツイート、RT、いいね、フォロー、DMなどの機能は使いますか？)
 4. **Do you plan to display Tweets or aggregate data about Twitter content outside Twitter?**　(Twitter以外の場所でツイートや集計データを表示する予定はありますか？)
 5. **Will your product, service, or analysis make Twitter content or derived information available to a government entity?**　(あなたの作るものは政府機関が使いますか？)

２～５の項目についてはYesかNoかをチェックします(1は全員必須です)。Yesの場合は説明を書いていきます。

(一ヶ月くらい前に僕がやったときは"in English"と書いてあったのに消えてるな？？日本語でもいいのかな？？)

一応、僕の書いたものをのっけておきます。
1.**How will you use the Twitter API or Twitter Data?**

>I want to make a bot.
Specifically, I want to make a bot that runs on LINE and Teams.
A bot that gives gentle words to negative words.
I would like to use the words obtained from twitter in the response of the bot.
I want to use the Twitter API to achieve that. I also want to raise the level of my activities.

>(Botを作りたいから。
具体的には、LINEやTeams上で動くBotを作りたい。
ネガティブな言葉に対して優しい言葉をかけてくれるようなBot。
そのBotの返答に、twitterから取得した言葉を使いたいと考えています。
それを実現するために、TwitterAPIを使用したい。また、自分の活動のレベルを高めたい。)

2.**Are you planning to analyze Twitter data?**

>Yes

>I want to create a bot that runs on teams and LINE using Azure's bot framework. Specifically, I want to use the words obtained on twitter as the bot's reply.
For that, you need an Access token, access token secret, etc., and want to use them to get tweets from the specified account.

>(AzureのBot Frameworkを使って、teamsやLINE上で動くBotを作りたい。具体的には、twitterで取得した言葉をBotの返答として使いたい。
そのために、Access token, access token secretなどが必要で、それを使って、指定したアカウントからtweetsを取得したい。)

3.**Will your app use Tweet, Retweet, Like, Follow, or Direct Message functionality?**

>No

(ツイートを取ってくるだけなので今回はNo)

4.**Do you plan to display Tweets or aggregate data about Twitter content outside Twitter?**

>Yes

>This bot retrieves tweets from the account specified by the creator and randomly responds to the user from among them.
Tweets are retrieved using Azure's Bot Framework and used by LINE, teams, etc.

>(このBotは、作成者が指定したアカウントからツイートを取得し、その中からランダムにユーザーに対して返答します。
ツイートはAzureのBot Frameworkを使用して取得し、LINE, teamsなどで使用されます。)

5.**Will your product, service, or analysis make Twitter content or derived information available to a government entity?**

>No

ここまで書けたらもう少しで完了です。
「Next」をクリックし、内容を確認します。
もう一度「Next」をクリックし、**Developer agreement & policy**の同意にチェック、「Submit application」をクリックして完了です！！！

審査に通れば後日、メールが届くはずです。
(僕のところにメール来なかったんだよな。いつの間にか使えるようになってた。なんでだろ？？)

※審査に通らなかった場合は、どこで引っかかったのか明記されたメールが来るみたいです。


#APIキー, アクセストークンを入手する
おーちょさんの作っていた励ましBotを完成させるには "access token", "access token secret", "API key", "API secret key" が必要なので、最後にその取得方法を書いておきたいと思います。

審査に通ると[TwitterDeveloperのサイト](https://developer.twitter.com/)の画面が変わり、右上に「Developer Portal」と表示されます。
クリックするとダッシュボードに飛びます。
![dashboard1](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668177/f69625ea-2bc9-6367-243a-18c5c70a4976.png)

「Create Project」をクリック

 - プロジェクト名
 - 自分は誰か
 - プロジェクトの説明
 - アプリの追加

等々入れていきます。最後のアプリの追加は「Create a new App instead.」をクリックして、アプリを新しく作ります。
アプリが作成されるとAPI keyとAPI secret keyが発行されるのでメモしてください。

Dashbordに戻ると、プロジェクトが作成されていると思います。
作成したappのセッティングをクリックします。
![dashboard2](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668177/49a009ae-9df6-b3e6-4de7-cb794614facd.png)
appメニューに飛ぶので、Bot名の下の「Keys and tokens」をクリックします。

一番下に"access token", "access token secret"があります。
「Generate」クリックで作成。メモしておきます。

これで、4つのキーが入手できました！
#Botを作りたい方は...
実際にBotを作りたい方は、おーちょさんの記事があるので御覧ください。
[やさしいチャットボットのつくりかた on Qiita](https://qiita.com/miokawa/items/6f1a3e480580e1e29abc)

Twitter連携部分
[やさしいチャットボットのつくりかた -4.Twitterからつぶやきをとってきてみよう！](https://qiita.com/miokawa/items/eb9f16220a36f65d7098#24-%E5%8A%B1%E3%81%BE%E3%81%97%E5%AF%BE%E5%BF%9Ctwitter%E9%80%A3%E6%90%BA%E9%83%A8%E5%88%86%E3%82%92%E4%BD%9C%E3%82%8B)
#最後に
ここまで読んでいただきありがとうございました！
次の記事で最終報告会について書きたいと思います。

(スクショを入れて丁寧に作ると時間かかりますね笑)

####Now
- [x]  Azureアカウント作成
- [x]  環境構築
- [x]  おうむ返しBotを作る
- [x]  teamsにアップロード
- [x]  Twitterと連携
- [x]  LINEと連携
- [ ]  オリジナルのBot作成
- [ ]  最終報告会

####参考
[1] [【TwitterAPI】developersアカウントへの登録手順まとめ【審査のやり取りあり】](https://maipyon.net/twitter-developer-account/) - 2021/3/20 アクセス
[2] [TwitterAPI登録を記入時間30分で超簡単にパスする裏技(日本語訳付き)](https://qiita.com/newt0/items/66cb76b1c8016e9d0339) - 2021/3/20 アクセス