目次
はじまり
TwitterAPIを利用しようと思い、以前作成したアプリケーションの編集画面にはいってみると、そこに書かれているcallbackURLは全く見覚えがないドメインに。
とりあえず、そのドメインに移動するがサイトは表示されない。
お名前.comの管理画面で登録済みのドメインを確認してみるが、callbackURLに登録されているドメインはなかった。
おそらく更新を忘れていたため、使用できなくなってる感じである。
別サイトのドメイン使用
今回行いたいことは、TwitterAPIでログインして、そのアカウントのアクセストークンとシークレットキーみたいなのを取得したいだけ。
なのでとりあえず自作のTwitterアプリのログインができるようになればいい。
そもそもcallbackURLに設定されているドメインのサーバーはどこにあって、ソースなどの処理はどこにあるかというと、自分で契約しているコノハのVPS内に存在している。
コノハのVPSにはApacheがはいっており、バーチャルホストでいろんなサイトを運営している形式になってる。
ちなみにこのサーバー内にMySQLもはいってる。
とりあえずターミナルから、サーバー内に入ってバーチャルホストに設定を確認。
callbackURLに設定されていたディレクトリなどを確認して、一時的に別のドメインを使用してTwitterのログインを試すことに。
もともとのcallbackURLではXXX.comというドメインで、/var/www/html/XXXがルートディレクトリで、AAA.comは/var/www/html/AAAがルートディレクトリだったとすると、AAA.comのルートディレクトリを/var/www/html/XXXに変更することで、callbackURLに設定していた処理が動くことになる。
とりあえずhttpd.confを書き換えてサーバーの再起動
AAA.comのサイトにいくが、もとのサイトのまま。
置き換わっている様子がない。。
systemctl reload httpd
のコマンド間違えてる?など少し格闘
別のファイルも書き換え
/etc/httpd/conf/配下にのhttpd.conf
があるんやが、他にもファイルが存在してることに気が付く
httpd-le-ssl.conf
このファイル。おそらくSSL関連の何かやと思って無視してたけど中身をみてみると、ガッツリ関係あった。
Let’s encryptでSSL化してるから、これが作成されてたのかな?
よくわからんが、この中身もhttpd.confと同じように書き換えて、サーバーの再起動を行ったところ、AAA.comでは元のサイトではなく、callbackURLに設定していたサイトが表示されました。
Twitterアプリの書き換え
新しいcallbackURLを設定することができたので、今度はTwitterアプリ側で設定しているcallbackURLを今設定したサイトのURLに書き換える必要があります。
Twitterアプリの管理画面から編集ボタン押してcallbackURLを変更。
昔なら承認待ちとかなく、サクッと作れたのに最近は英語でなにか説明みたいなのが必要みたいですね。
今回はcallbackURLだけの変更だったので大丈夫でした。
無事にcallbackURLの設定ができたので、ログインを試したみたところ。。
なぜかエラーになる。。
おかしい。
画面に表示されているエラーをみてみると、Twitterに登録したcallbackURLとサーバー内で保持しているcallbackURLの値が正しくないとエラーになるみたいです。
サーバー内でもcallbackURLの設定をしていたとは。。
.envにcallbackURLが書かれていました。
それを新しいcallbackURLに変更すると。
無事にTwitterログインができて、そのユーザーでAPIを使用するためのトークンなど取得できました。
まとめ
4年くらい前に契約したVPSで、当時はいろいろ触っていたが最近は全く触っておらず、久しぶりに触ってみると全くちゃんと動かない。
ほとんどのことを忘れている状態でした。
たまには触ってみないと忘れてしまいますね。。