Self-Curation

新卒社会人で営業マンになりました

Laravel#9-1 Twitterログイン実装【API申請編/2020年11月】

f:id:scuration:20200802232227p:plain

今回はLaravelで作成したアプリについて、各自が保有しているTwitterアカウントで認証(OAuth)できるようにしたいと思います。

実装には①TwitterAPI情報の取得②LaravelにSocioliteを導入、と大きく2ステップがあり今回はまずAPIの利用申請するところだけ書きました。

TwitterAPIの申請

申請ページ


Getting Started with the Twitter API | Docs | Twitter Developer


f:id:scuration:20201123171839p:plain

「Apply for developer account」をクリックして次に進みます。


f:id:scuration:20201123172213p:plain

もう1回「Apply for developer account」を押します。

申請するTwitterアカウントの確認

f:id:scuration:20201123172354p:plain

ここからTwitterAPIの申請が始まります。
最初にTwitterAPIの利用目的を聞かれます。
私の場合はTwitterアカウントのOAuth認証実装が目的だったため、一番近そうな「Building tools for Twitter users」を選択しました。


f:id:scuration:20201123173753p:plain

API申請するTwitterアカウントを確認をされます。
このとき申請を行うTwitterアカウントで電話番号の認証を行っていないと、上のキャプチャのように警告が出て進めません。
※電話番号でアカウント作成を行ってメールアドレスが登録されていなくても、おそらく警告が出ると思います。



f:id:scuration:20201123173900p:plain

住んでいる国とニックネームを回答します。
住んでいる国についてはリージョンによって制限があるわけでもないので、日本と回答して問題ないです。

記述式の回答

f:id:scuration:20201123174423p:plain
次にTwitterAPIの利用目的について記述式で回答を求められます。
「英語で200文字以上で」と条件ありますが、実際には日本語200文字以上で問題なく申請はできます。

ただ実際に書いてみると200文字も書くことないんですよ(特に個人開発の場合)。
ここがTwitterAPIの申請が面倒だと言われる所以です。

僕が作っていたWEBサイト口コミサイトのOAuth用に申請したときは、以下の文章で提出しました。
200文字稼ぐためにかなり無理な日本語になってますが、参考になれば幸いです。

私が運営している口コミサイト(https://~省略)の機能を拡張するためにTwitterAPIを使用します。具体的にはユーザー自身の口コミ投稿をTwitterでもシェアできるようにします。予めTwitterと連携し、口コミ投稿時に任意でチェックボックスを入れる形で実装する予定です。そうすることでWEBサイトのシェアを通じたコミュニケーションはこれまでより活性化できると考えております。






Are you planning to analyze Twitter data?
Twitterデータを分析に使いますか?)

f:id:scuration:20201123181207p:plain
Yesの場合、「Twitterデータどのように分析するか」について100文字以上で入力します。
自分はデータを分析する意図はなかったのでNoにしましたし、個人開発のデベロッパーには無関係の項目だと思います。





Will your app use Tweet, Retweet, like, follow, or Direct Message functionality?(あなたのアプリケーションはツイート,リツイート,お気に入り,フォロー,またはダイレクトメッセージ機能を使用しますか?)
f:id:scuration:20201123181808p:plain
そのままの通りです。自分は「Laravelアプリで投稿した内容をTwitterでもつぶやく」という要件を満たしたかったのでYesにし、以下のように記述しました。

ツイート機能のみ使用する予定です。前項にも記述した通り、投稿した口コミと同じ内容をTwitterにも投稿したいと考えております。予めTwitterにログインして連携し、口コミ投稿時に任意でチェックボックスを入れる形で実装する予定です。






Do you plan to display Tweets or aggregate data about Twitter content outside of Twitter?(Twitter以外のページでツイートや集計内容を表示する予定ですか?)
f:id:scuration:20201123181021p:plain
「outside of Twitter」というのはTwitterと関係ないアプリケーション、サイト、研究機関のことで、そういった場所で集計データの開示を行うか問われていると思います。
ツイートと集計データを表示させる予定はなかったのでNoにしました。






Will your product, service or analysis make Twitter content or derived information available to a government entity?(あなたのプロダクト・サービス・分析結果は、Twitterおよびそこから導かれた情報を政府機関に提供しますか?)
f:id:scuration:20201123182906p:plain
Noにしました。






f:id:scuration:20201123185035p:plain
上記項目を入力してNextを押すと、入力内容の確認と利用規約への同意が求められます。
内容確認後に「Submit Application」をクリックするとTwitterアカウントの登録メールアドレスに認証メールが届きます。
「Confirm your email」を押しましょう。

審査開始~完了

インターネット上の報告では「申請後すぐにAPI利用できた」という報告もありますが、自分の場合は審査に時間を要しました。

f:id:scuration:20201123185436p:plain
こちらが審査を開始したことを告知するメールです。



f:id:scuration:20201123185940p:plain
また審査開始の告知から20時間くらい経過したタイミングで上の以下のようなメールが送られてきました。

ご利用ありがとうございます。

Twitterプラットフォームでの開発に関心をお寄せいただきありがとうございます。

お客さまの開発者アカウント申請の審査を完了する前に、お客さまの使用目的についての詳細情報のご提供をお願いします。

審査で重視されるのは以下のような情報です。

Twitter APIを使用する中核的な使用目的、意図、ビジネス上の目的。
ツイート、Twitterアカウント、またはそのコンテンツを分析する場合は、実施する分析の内容と手法または技術について詳しくお教えください。
ツイート、リツイート、いいねの使用が含まれる場合は、Twitterアカウントまたはそのコンテンツに対してどのような操作を行うのかをお教えください。
TwitterコンテンツをTwitter以外で表示する場合は、お客さまの製品またはサービスで、ツイートおよびTwitterコンテンツがどこにどのように表示されるかを、行レベルの表示か集計表示かを含めてご説明願います。
上記の詳細情報を記載のうえ、このメールにご返信ください。返信をいただきましたら、審査を続行いたします。ご理解、ご協力いただければ幸いです。

よろしくお願いいたします。

Twitter



「TwitterAPIのを使用する目的について、詳細をメールで返信してください。返信後に審査を回答します。」という内容です。
このメールにそのまま返信したので大丈夫ですので、回答しましょう。でないと先に進むことができません。
※このメールは日本語で送られてくるので、申請時に日本語で回答したことが原因かもしれません。。。


私の場合は以下のように箇条書きで返信しましたが問題ありませんでした。
そんなかしこまって書く必要はなさそうです。

Twitter APIを使用する中核的な使用目的、意図、ビジネス上の目的。

私は口コミサイトを運営しており、そのサービスへの投稿をTwitter上でシェアすることが中核的な使用目的です。Twitterを使用したログインと、投稿の紐づけのみ行います。

ツイート、Twitterアカウント、またはそのコンテンツを分析する場合は、実施する分析の内容と手法または技術について詳しくお教えください。

Twitterコンテンツなどについて分析は行いません。

ツイート、リツイート、いいねの使用が含まれる場合は、Twitterアカウントまたはそのコンテンツに対してどのような操作を行うのかをお教えください。

まずユーザーが自身のTwitterアカウントを使ってログインを行います。その後口コミの投稿時に、その内容をTwitterにも同時に投稿します。

TwitterコンテンツをTwitter以外で表示する場合は、お客さまの製品またはサービスで、ツイートおよびTwitterコンテンツがどこにどのように表示されるかを、行レベルの表示か集計表示かを含めてご説明願います。

TwitterコンテンツをTwitter以外では表示致しません。

以上。よろしくお願い致します。







回答してから1時間後。。。

f:id:scuration:20201123190942p:plain
日本時間で深夜2時に承認された旨を伝えるメールが届きました。
2020年11月現在の審査について、面倒ではありますが厳しいという印象はありませんでしたね。