副業でTwitterのAPIを使う機会があったので取得方法を備忘でまとめてみました(都合2アカウント分、つまり2回取得しています)
調べてみると申請画面や項目は結構な頻度で変わるみたいで、この記事は2022年10月現在の申請方法になりますのでその前提で参考にしてみてください
申請画面は英語多めで苦手な方(私)向けに画面多めで構成してますので縦長になりましたがその分伝わりやすいと思うのでご了承を
(一応レベルの事前準備をお伝えするとツイッターのアカウントは事前に作成しておいてください)
事前準備編
まずはTwitterへログイン
https://developer.twitter.com/ja
兎にも角にもまずはログインから
Googleアカウントに連動してたっけ?と思いつつ連動してれば簡単にログインできます
そしてなぜかリダイレクト先が開発者用ではなくて普通のTwitter画面に、、、
ついでにPC版のTwitter言語を日本語に
PC側だと初期値が英語設定になっていたので日本語に直します(私だけですか?)
たいした話ではないのでさらっと
①more → ②Settings and Support → ②Settings and privacy → ④Accessibility, display, and languages → ⑤Languages → ⑥Display language → ⑦Change display language で ”Japanese – 日本語”を選択して右下の”Save”を押下
開発者プラットフォームで今度は”Sing up”
Twitterにログインできているとヘッダーのメニューが変わっているので今度は”Sing up“を
![](https://javeo.jp/wp-content/uploads/2022/10/2022-10-22_13h18_38-1024x555.jpg)
URLを見ればわかるのですが以降のメニューは英語圏しか準備されていならしく言語が英語に・・・(英語が苦手な私はGoogle先生に翻訳してもらって進めました)
聞かれてることは大したことではないので適当に登録して”Let’s do this“を押下
次ページは利用規約の同意なので気になる人は一読した後に”Submit“で利用規約に同意を
(このあとTwitter開発者用アカウントからメールが届くのでメール内のリンクから続きを)
(Twitterアカウントに電話番号が登録されていないと弾かれる)
利用規約同意しようとしても画面が変わらず・・・右上を見るとどうやらTwitterアカウントに電話番号登録が必要とのことなので一度Twitter側の画面へ
(先ほど日本語化しているのでわかりやすい!)
もっと見る → 設定とサポート 設定とプライバシー → アカウント → アカウント機能 → 電話 で登録を(この後SNS認証などありますが省略)
終わったら改めて”Submit“で利用規約に同意を
開発者ポータル編
ようやく開発者ポータルでの作業へ移ります
アプリ名の設定とAPIキーの生成
まず最初にアプリの名前を登録を要求されるので適当に登録(後から変更できます)
すると早速”API Key / API Key Secret / Bearer Token“生成さます!が、さすがにここで終わりってことはなくAPIの利用にはまだまだ必要なものがあるのでダッシュボードへ
アクセストークンを生成
ダッシュボードのトップページにある鍵のアイコンからAPIキーとトークンの管理画面へ
一番下がアクセストークンなので”Generate“をクリック
すぐに”Access Token / Access Token Secret“が生成されるので”Yes, I saved them“で確定
ユーザー認証設定してクライアントIDを取得
左部のメニューから”Projects & Apps → Project 1 → <最初に設定したアプリ名>“のメニューへ移動して設定画面へ
![](https://javeo.jp/wp-content/uploads/2022/10/2022-10-22_18h10_30-1024x555.png)
初の縦長メニュー
最後の”App info“が曲者ですが各項目を選択&入力してクライアントIDを生成する
一応レベルですが各項目の説明は画像の下に用意しています
![](https://javeo.jp/wp-content/uploads/2022/10/2022-10-22_19h55_14-588x1024.png)
App permissions
“Read“だとツイートできず私の目的は達成できないので”Read and write“を選択
きっとAPI使ってDMまでしたい人は”Read and write and Direct message“が必要なのでしょう
“Request email from users“はよくわからない&使い道なさそうなのでOFFのまま
Type of App
選択肢による動作の違いは正直わかってません・・・
私の目的は自動ツイート用のbotかつパブリックにする意味もないので”Web App, Automated App or Bot“を選択
App info
ここが一番よくわからず・・・
結果論として私が登録したのは必須の”Callback URI / Redirect URL“と”Website URL“の2つだけ
この項目は諸説ありまして、調べた限り
- 両項目に自分が運営しているサイトのURL
- “Callback URI / Redirect URL“には”https://127.0.0.1:3000/cb“
“Website URL“には自分のTwitterURL(私なら “https://twitter.com/javeo2022“)
のどちらか
私は両方のパターンで申請しましたがどちらでも問題ない実績があります
全て入力して”Save“押下すると”Client ID / Client Secret“が生成されます
![](https://javeo.jp/wp-content/uploads/2022/10/2022-10-22_18h46_46-1-1024x555.jpg)
Pythonで利用するならもう一歩!
私はPythonでAPIを利用するので”tweepy“を使うわけですがもう一つ対応することがあります
ツイートするAPIの問題なのかtweepyの仕様なのかわかりませんが言われてことを
まだまだ終わらない、アクセス権が不足している?
この段階でアイテムとしては準備できているので早速APIでツイートしてみるとエラーが(わかりやすいのでVSCodeでのエラーメッセージから引用)
![](https://javeo.jp/wp-content/uploads/2022/10/2022-10-22_17h57_43.png)
(原文)
403 Forbidden
453 – You currently have Essential access which includes access to Twitter API v2 endpoints only. If you need access to this endpoint, you’ll need to apply for Elevated access via the Developer Portal. You can learn more here: https://developer.twitter.com/en/docs/twitter-api/getting-started/about-twitter-api#v2-access-leve
英語読めないので翻訳サイトさんに助けてもらうと”Elevatedアクセスに申請する必要があります”と言われたので再び開発者ポータルへ
どうやら今のままでは”Essential”の状態なので”Elevated”へ申請する必要があるとのこと
Essentialでは”Twitter API v2″が利用できるけどtweepyで利用しているのが”Twitter API v1.1″とのことでこの対応が必要らしい
![](https://javeo.jp/wp-content/uploads/2022/10/2022-10-22_18h04_47-1-1024x555.png)
Elevatedへの申請をする
開発者ポータルの左部のメニューから”Products → Twitter API v2 → Elevatedタブ“の順で遷移して”Apply“を押下
名前と国はプフィールから初期値として引用されている(と思う)ので”スキルレベル“を選択して”アップデート通知”は必要なら
![](https://javeo.jp/wp-content/uploads/2022/10/2022-10-22_21h00_31-1024x555.png)
ここが一番だるい
各設問に対して”英語“で入力する必要があります
私は英語力皆無なのでDeeL翻訳様の力をお借りしまして必要な各項目登録しました
ちなみに各詳細項目でNoにした場合の影響はわかりません(正直)
各コメントも適当に登録した時の影響がわからないので正直に回答します
![](https://javeo.jp/wp-content/uploads/2022/10/2022-10-22_21h24_38-588x1024.png)
How will you use the Twitter API or Twitter Data?
この項目は必須
利用目的を”英字200文字以上”で述べる必要があるのでそれらしい文章を入力します
参考になるかわかりませんが日本語と実際に入力英語の文章を
今予定している利用目的は2つあります
毎日あるポイントサイトの変更点を探し、その差分をツイートするbotを作りたいです
自分をフォローしてくれた人を自動的にフォローバックしたいです
使い慣れればデータ分析など活用の幅を広げたいと思っています
There are two purposes of use that I’m planning right now
I want to create a bot that looks for changes to a certain point site every day and tweets the differences!
I want to automatically follow back people who follow me!
Once I get used to using it, I would like to expand the scope of its use, such as data analysis.
Are you planning to analyze Twitter data?
私は今のところデータ分析の予定はないのでNoに変更
Yesなら”英字100文字以上”で入力
Will your App use Tweet, Retweet, Like, Follow, or Direct Message functionality?
利用目的とほぼ同じこと言ってますがこれが利用目的なのでその通りに
こちらも参考になるかわかりませんが日本語と実際に入力英語の文章を
とあるポイントサイトの変更点を探して、その差分をツイートするbotを作りたいです
フォローしてくれた人に自動でフォローバックしたいです
今はリツイート、いいね、DMの利用はありません
I want to create a bot that looks for changes to a certain points site and tweet the differences!
I want to automatically follow back those who follow me!
No retweet, like, or DM use right now!
Will your product, service, or analysis make Twitter content or derived information available to a government entity?
どこに情報提供する予定なんてないのでここもNoへ
レビュー画面を挟みますが問題なければ次へ
![](https://javeo.jp/wp-content/uploads/2022/10/x2022-10-22_21h25_14-1024x555.png.pagespeed.ic.JXnGPD56bB.png)
最後に開発者契約とポリシーに同意して終了
![](https://javeo.jp/wp-content/uploads/2022/10/x2022-10-22_22h04_13-1024x555.png.pagespeed.ic.-VR20-hOFy.png)
あとがき
実際に申請してもらうとわかるんですが最後のElevatedの申請はSubmitした瞬間から使えるようになるので利用目的とかちゃんと入力する意味あるのかなと思いつつも後から利用できなくなるとつまらないのでちゃんと入力しました
実際に使用しているbotは↓なので気が向いたら見てみてください
コメント