PHPで作ったtwitter botが登録できない・動かない
はじめに
最近PHPを始めたので、試しにtwitter botを作ったところ、アプリ登録できない!
悪戦苦闘の末、アプリ登録に成功するも、今度はツイートできない!
外部サービスを使う際には、思わぬ落とし穴に注意しましょうというのが今回のお話。
結論
・twitterアプリを登録するには、アカウントの電話番号認証が必要
・アプリ登録後にパーミッション変更が必要(そのままではツイートできない)
経緯
私は花粉症なので、「今日の花粉飛散量」をいつも気にしているのですが、Yahoo!天気とかでイチイチ調べるのが非常に面倒くさい!
というわけで、環境省花粉観測システム(愛称:はなこさん)からリアルタイムで花粉飛散量を取得して、「花粉速報Bot」にツイートさせようというのが今回のアイデア。
PHP初心者の私が今回参考にしたのはこちらの記事。
PHP - twitter botを作ってみる(第1回〜twitteroauth導入編) - Qiita
いざ作成したtwitterアプリを登録しようとすると、途中でエラーになり進めない!
エラーメッセージにも書いてあるが、どうやらtwitterアプリを作成するためには、先にアカウントの電話番号認証を済ませておく必要があるらしい。
新しいtwitterアプリを作ろうとすると、電話番号認証が必要になったらしい - risuo's blog
この電話番号認証、登録した電話番号にSMSで送られてきた確認コードを、twitterで入力するだけとやり方自体は難しくないが、何がどう悪いのか正しく入力しているのに何度も認証に失敗することがある。
認証に失敗しても、何度か繰り返しやっているうちに、突然認証が通るので諦めないでください。(私は10回以上やって通りました)
ようやくtwitterアプリの登録が完了し、いざ動かすも今度はツイートが表示されない!
そこで、twitterアプリの設定を確認すると、パーミッションが初期設定(Read only)であることが判明!
これを修正して無事ツイートされることを確認!めでたしめでたし。
まとめ
twitterアプリの登録まで完了したら、あとはアカウントの
なので、複数のアカウントでtwitterアプリを登録したい場合、
電話番号認証 ⇒ アプリ登録 ⇒ 電話番号削除 を繰り返していけば大丈夫です。
また、パーミッションの修正後にアクセストークンの再生成が必要になるので注意してください。