Twitter APIのセットアップ

# Twitter API
twitterのAPIを利用するためには、Twitter developper　のログインが必要らしい。
Qiitaにいくつかの記事があったが、情報が古かったりしたので備忘録として残しておく。
今回取得するものは以下
- APIKey
- APIKeySercret
- Bearer Token
- Client ID (OAuth2.0)
- Client Secret (OAuth2.0)
- Access Token
- Access Token Secret

## Developper
### Sign in
https://developer.twitter.com/ja/docs

上記のページから、既存のアカウントへsign inする。

### 注意
ログインすると
![スクリーンショット 2022-04-03 18.07.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/70ae9d28-1b05-169c-e267-394467ff043c.png)
「このページは存在しません。お詫びのしるしとして、椅子に座ったプードルの写真をご覧ください。」
とプードルの写真を一方的に押しつけられることがある。（~~ふざけんな~~）

その場合は焦らずに、再度先ほどのドキュメントホームにアクセスしてほしい。

## Twitter API
### Sign in
![スクリーンショット 2022-04-03 18.18.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/4c473829-de79-96ef-98e8-87511703b469.png)

正しくログインできていると上記の画面になる.
画面中央（もしくはNavigation）のTwitter API をクリックする。

![スクリーンショット 2022-04-03 18.22.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/1a46bd2d-9c67-60c4-0450-cae6622671a5.png)

上記の画面になるので、Sign upをクリックする。

### 初回認証
![スクリーンショット 2022-04-03 18.26.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/77e5422b-5645-6db6-f1a4-fa3e7696e0b1.png)

初回認証時にアカウント情報と上記内容に回答する必要がある。
アカウント情報は電話番号の認証が必要なので、登録していない場合は登録しておく。（ここでは割愛）

名前を改めて設定する必要があるようで、この名前は1度決定したら変更できない。

-　Will you make Twitter content or derived information available to a government entity or a government affiliated entity?
-　（直訳）Twitterのコンテンツや派生情報を政府機関や政府の関連団体が利用できるようにしますか？
 
上記は個人的にNoに設定したが、適宜回答推奨。
回答したら、画面下のNextをクリック

![スクリーンショット 2022-04-03 18.35.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/18b8ee4e-6047-a4bc-b124-017391460529.png)

policyへの同意が必要。
特に問題なければ、下段のチェックボックにチェックしてSubmit。

![スクリーンショット 2022-04-03 18.38.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/b65f44f0-36e4-9663-0876-b9d7bce0fb7f.png)

登録アドレスに認証メールが送信されるので、メールを確認。

![スクリーンショット 2022-04-03 18.39.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/549b8127-6d27-d1ee-ea61-3a6966c48364.png)

メール内のConfirm your emailをクリック

### App名を決める
![スクリーンショット 2022-04-03 18.40.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/5afe6eab-0420-fe3b-0c49-705542f27ccd.png)

Twitter APIを利用するために、AppNameを設定する必要がある。
twitterのユーザーネームと同様に、ユニークでしか作成できないため、注意。
適宜AppNameを決定して、Get keysをクリック

![スクリーンショット 2022-04-03 18.44.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/413a896f-1e6d-79b7-f0a2-d1ff57862228.png)

APIKey,APIKeySercret,Bearer Tokenが作成できた。
このページから遷移すると二度と確認できないので、3つはメモして保管する。
（Keyを忘れた場合、Regenerateは可能）

Test an endpointでkey等を確認できるが、特に必要なければSkip to dashboardをクリック。

### Developpper Portal
![スクリーンショット 2022-04-03 18.51.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/47a3b481-5063-eb7e-df61-f7f55f57fed7.png)

ダッシュボードに遷移すると画像赤枠で示した部分に、先ほどのAppが確認できる。
Settingマーク：Authの設定
Keyマーク：AccessTokenの取得
ができるので、**以下そのページに遷移したとして話を進める。**

### authntication
![スクリーンショット 2022-04-03 19.01.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/0ae0b371-2c1d-e751-cf79-cced29ff76a9.png)

Settingページに遷移すると、上記内容を確認できる。
<font color="Red">デフォルトでは、APIはReadの設定しか付与されていない</font>ため、API経由でツイートしたい場合はSetupをクリックする。

![スクリーンショット 2022-04-03 19.06.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/94a3f4cc-62bf-0a6e-1ef3-16ec87adbccf.png)

認証はOAuth 2.0/ 1.0aが存在。
Read/Write設定は1.0aで管理している模様。（間違っていたら指摘いただきたい。）
私は念の為両方とも有効にした。

![スクリーンショット 2022-04-03 19.11.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/0c38b6e5-dfcb-65ef-bc5a-2c12595eff30.png)

OAuthの各設定及び、諸設定を記載。
Saveする。

![スクリーンショット 2022-04-03 19.13.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/d7e43f1d-9133-c8e0-a539-de4e558f717c.png)

OAuth2.0のClientID/ClientSecretが発行される。
こちらも保存必須。
DoneしてPortalDashboardに戻ると、OAuthが適用されているのがわかる。


### Access Tokenの取得

![スクリーンショット 2022-04-03 18.56.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1005334/b07986a9-f79a-e4a3-cce3-b01630d45b52.png)

keyページにアクセスすると、上記表示が確認できる。
上記画面のGenerate(赤枠部分)でtokenを取得する。
Generateを押すとポッアップですぐにtokenが発行される。こちらも保存必須。
**ただしこのTokenはAuthの設定をしていないと、APIはReadの権限しか持たないので注意。**

余談だが、先ほどのAPI keyの再発行はこの画面の上記「API Key and Secret]からRegenerateする。

# まとめ
以上で、APIkeyやTokenの取得が可能となる。
ここ数年で何回が仕様が変化しているようなので、常に最新の方法で取得する必要がありそうだ。