この記事は、PHPを使ってTwitter Botを作る方法を紹介する連載企画の第1回目の記事です。
Twitter APIを使うために、developer accountやapp作成のための申請についてだけ読みたい人はこちらからどうぞ!
目次
Progateの次に何を作るのか?問題
先日こんなTweetをしました。
ProgeteでPHPやった後に、自分で作るの最初はTwitter Botが良い気がしました。
✅デザインを考えなくていいから短時間でできる
✅入力されないからセキュリティのリスクが低い
✅DBの知識不要
✅APIの使い方の勉強にもなる
30ファボ集まったら、自分の作ってみたTwitter Botの作り方の記事書きます— 花井雅敏@名古屋市守山区のWebデザイナー (@hanamasa0201) August 9, 2018
このTweetについてもう少し詳しく書くと、Progeteなどで基礎を学んだあとに、自分でいざ何かを作ってみようと思うと以外と難しいことに気がつきます。
- Webサービスを作るなら、デザインやHTML/CSSの実装も必要
- 問い合わせフォームなど来訪者に入力できるものだと、脆弱性の知識が十分じゃないので攻撃が怖い
- DBと連動ものは、別途DBの学習が必要
など、プログラミングを始めるまでのハードルがあります。
そこで今回、自分で何かを作ってみる入り口としてTwitter Botをおすすめします。
Twitter Botが初心者におすすめな理由
Twitter Botが初心者におすすめな理由は、先の Tweetにも書いた通りですが、
- デザインを考えなくていいから短時間でできる
- 入力されないからセキュリティのリスクが低い
- DBの知識不要
- APIの使い方の勉強にもなる
まぁ、端的に言えばすぐ分かりやすいアウトプットが作れて飽きないということです。
Progate後の入門者向けに学習目的で順をおって解説
Twitter Botに必要なPHPのコードは、30行程度でかけてしまいます。
ただTwitter Botの作り方を紹介する記事は結構多いので、Progateなど入門を終えている人を想定し、
- Bot部分のクラス化
- 他のAPIと連動させる
など、入門の復習+αな内容を何回かに分けて書いていきたいと思います。
Twitter Botを作るために必要なもの
それでは、まずTwitter Botを作るために必要なものを紹介します。
Twitterアカウント
Twitter Botなので、もちろんつぶやかせるためのTwitterアカウントが必要です。既存のものでもいいですし、新規に作成しても大丈夫です。
また開発に必要なTwitter Developersのアカウントの作成やそのアカウントで作れるApp(トークン)の作成にも必要です。
サーバー
今回の説明では、エックスサーバー を使います。
自分の場合は、他のホームページを運用しているレンタルサーバーを間借りするかたちですがそれで十分です。
また、サーバーでは自動でPHPを定期的に実行するためにCRON設定を行います。
エックスサーバー ではコントローラーパネルでCRON設定を行うことができます。他のレンタルサーバーでもコントロールパネルからできるところが多いので、参考にしてみてください。
無料枠のあるクラウドサーバーもありますが、今回は操作がわかりやすいのでレンタルサーバーでいきます。
TwitterOAuth
今回はTwitterOAuthというライブラリを使います。TwitterOAuthに関しては、作成の手順の中で入手方法や使い方を改めて紹介します。
Twitter APIを使うためにdeveloper accountの申請をしよう!
Twitter Developer Platformにアクセスする
下のリンクからTwitter Developers Platformへアクセスし、Twitterアカウントでログインします。
右上の「Sign In」をクリックします。
Twitterアカウントでログインする
既存もしくは作成したTwitter Botでつぶやかせるアカウントでログインします。
Twitter Developerアカウントを作成する
ログインできました。続いて、右上の「Apply」 を押します。
このページに遷移するので「Apply for a developer account」ボタンを押します。
「Interested in developer account?(開発者アカウントに興味があるますか?)」と聞かれるので、「Continue」ボタンを押します。
この時、Botを作るアカウントと違う場合は変更してください。
「my organaization(組織)」か「my own personal use(個人)」での利用かを聞かれるので、用途に合わせて選びます。違いは、チーム開発を助けるツールの有無です。
今回は、下の「I am requesting access for my own personal use(自分の個人使用としてアクセルを要求する)」のラジオボタンを選びます。
「Account name」と「Primary country of operation」の項目が表示されるので、アカウント名(ex.hanamasa0201)と主に運用する国名(ex.日本)を入力して、「Countinue」ボタンを押します。
プロジェクトの情報を書いていきます。目的を選択し、詳細を書きます。詳細は300文字以上の英文指定なので、結構面倒です。とりあえずGoogle翻訳で作った文章で申請中です。
最後に、アプリの取得した情報をgoverment(政府?)で解析してもいいですか?聞かれるので、「No」にしましたが、これが申請に関わるかは今のところ不明です。(「Yes」にすると国がどのように使うのか?聞かれるようです。)
Twitter Developer Policyを確認して、承認チェックボックスにチェックを入れます。その前に、上の文章をスクロールしないとチェックできないので、注意していください。
アップデット情報のメールの有無のチェックボックスは、チェックしなくても次に進めます。
この画面が出るので、アカウントで指定したのメールボックスに確認メールが届くので、「Confirm your email」ボタンをクリックします。
これで審査中になります。
僕も8/11の朝に申請してまだ、審査中です。
【2018.08.31追記】足りない情報を返信してたら、承認されました
8/31にTwitter社から審査に情報が足りないから、その情報を書いてメールを返信してくれとメールが来ました。
大まかな内容は、上で書いたのと同じプロジェクトの目的はなんだ?と言う内容でした。内容は変えようもないので、少し言い回しを返したところ。
8/31中に、承認しました!と返信が来ました。
結局、8/11に申請したので、20日間かかりました。
このシステムになって初期段階なので混んでいるのかもしれませんが、Twitter Botを作ってみたい人はとりあえず申請だけしておいた方が良さそうです。
これでやっとアプリを作って、APIを取得できそうです。
まとめ
今回は、ProgateのあとなぜTwitter Botがいいのかと、Twitter APIを取得するための申請の仕方を紹介してきました。
下の記事でもあるように、Twitter APIに対する制限が前より厳しくなってるみたいです。身近で手軽に触れるAPIだけに、自由度が下がるのは残念ですね。
次回は、TwitterOAuthの導入とシンプルなBotのコードを紹介したいと思います。
その前に、アプリを作ってAPIを取得するところの解説をしていこうと思います。