【Webアプリ】ツイッター検索(おは戦専用)

f:id:utalab:20200522155712p:plain

レンタルサーバーのヘテムルで、DBを使ったWebアプリを作成しました。

ポイント

  • トーマスを使って認証
  • DBを使ったデータ登録・訂正・削除・一覧
  • 指定データでツイッター検索
  • PC環境のフォルダ構成はレンタルサーバーと同じにする

Webアプリのデモ

こちらから動作確認できます。

最初の画面です。

f:id:utalab:20200522145903p:plain

ログインすると以下の画面が表示されます。

f:id:utalab:20200522150401p:plain

左のメニューから「ツイアカ(ツイッターアカウント)登録」をクリックします。

f:id:utalab:20200522153715p:plain

データを入力します。

f:id:utalab:20200522153908p:plain

登録後の画面です。

f:id:utalab:20200522153958p:plain

30件まで登録できます

同様に、「bbb」「utalab」を登録します。

左のメニューから「ツイアカ一覧」をクリックします。

f:id:utalab:20200522154240p:plain

一覧画面の上に「3/30」とありますが、30件登録可能状態で、3件登録ということです。

ツイアカの並び順はアルファベット順です。

「aaa」の訂正リンクをクリックします。

f:id:utalab:20200522154438p:plain

「aaa」を「aaazzz」にします。

f:id:utalab:20200522154604p:plain

訂正後の画面です。

f:id:utalab:20200522154700p:plain

左のメニューから「ツイアカ一覧」をクリックします。

f:id:utalab:20200522154805p:plain

さきほど訂正したツイアカが表示されています。

「aaazzz」の削除リンクをクリックします。

f:id:utalab:20200522154932p:plain

訂正画面と同じに見えますが、入力項目は修正できない状態です。

削除後の画面です。

f:id:utalab:20200522155334p:plain

左のメニューから「ツイアカ一覧」をクリックします。

f:id:utalab:20200522155447p:plain

「aaazzz」が削除されているのを確認できました。

左のメニューから「ツイッター検索(おは戦)」をクリックします。

f:id:utalab:20200522155712p:plain

ログイン後の初期画面と同じです。

日付は実行時の日付です。上の日付を変更して「send」ボタンを押すと日付が変更できます。

一覧のすぐ上に表示されている日付で検索します。

「utalab」の右の検索ボタンをクリックすると検索画面が表示されます。

f:id:utalab:20200522160030p:plain

2020年5月22日の分です。
「utalab」以外は適当なので、たぶん該当なしです。

ポイント解説など

トーマスを使って認証

認証方法は、以下で解説しました。

utalab.hateblo.jp

今回は認証時にデータベースを利用しています。

「誰のデータか」を決めるために、ライセンスコードを利用します。

認証時のID(メールアドレス)にしようかと、最初は考えましたが、できる限り個人を特定できないほうがいいだろうということで、ライセンスコードにしました。

さて、ライセンスコードを元にデータを作るとなると、最低でもライセンスコード分のデータ量が必要となります。

今回の例でいえば、ツイアカ登録部分です。
ツイアカ用テーブル構成

  • ID(INT)
  • ライセンスコード(VARCHAR(30))
  • ツイアカ(VARCHAR(15))

もし、上記の場合、一覧表示をするとなると、ライセンスコードで検索して表示となります。

上記でも問題ではないですが、生データを見た場合、わかりやすいことと、データ量を小さくしたいということです。

もし、ライセンスコードをライセンスID(INT)に変換できると、どうでしょう?

MySQLでは、INTは4バイトです。

以下を参照してください

dev.mysql.com

となると、30バイトから4バイトを引いて、26バイト削減したことになります。

微々たるものですが、積み重なると、それだけデータ量が余計になります。

ということで、ログイン直後にm_licenseテーブルを使って、IDに変換しています。

そのIDは、セッション変数にセットし、テーブルに登録するたびに、そのIDをセットすることとなります。

DBを使ったデータ登録・訂正・削除・一覧・検索

DBの基本といえば、「登録・訂正・削除・一覧・検索」ですね。

今回は、登録画面表示、登録結果表示というように、入力画面と結果画面を忠実に作りました。

作る方としては、作りやすいです。

ただ、使い勝手がよいかというと、そうではありません。

使い勝手をよくするためには、ユーザーインターフェースとか操作性で、時間がかかります。

自作であれば、最低限でよいと思います。

でも、使用頻度が高くなると、やはり使い勝手をよくしないと、作業効率は上がりません。

使い勝手をよくするのは今後の課題ですが、少なくともデータベースに登録することで、いろんな利用方法がでてくると思います。

指定データでツイッター検索

今回のメインです。

単純に、毎日でもチェックしたい人を登録しておくと便利だろうなぁ、ということで作ってみました。

ツイッター上の検索から検索することも当然できますが、「入力して検索」は、面倒ですよね。

あらかじめ、検索するべき文をエディタで作っておいて、それをコピペするのもいいかもしれません。でも、コピペすら面倒になってきます。

そんなときはデータベースを利用するアプリがあると便利ですね。

さらに、今回のハッシュタグは、毎日変更されるので、自動生成されるのも便利です。

今回はクリックしてブラウザを開くということになりますが、どうせならまとめて全部検索してブラウザで開いてほしいです。これは、JavaScriptも使わないとできないので、いづれやりたいと思います。

PC環境のフォルダ構成はレンタルサーバーと同じにする

現在は、ヘテムルというレンタルサーバーを利用しています。

サーバーの構成として、外部から参照できるフォルダと、外部から参照できないフォルダがあると思います。

IDやパスワードは、外部から参照できると、まずいですよね。

そこで、IDやパスワードは外部から参照できないフォルダにdb_init.phpとして保管します。

プログラムからそのファイルをincludeし、そこに書いてあるIDやパスワードを参照します。ちなみに、ここで言うIDやパスワードは、データベースに対してとなります。

まとめ

データベースの設定やデータベースからのデータの取得など、PHPでは初めてなので、ちょっと時間がかかりました。

DBからの基本操作ができるようになったので、いろいろやってみたいと思います。

PHPやMySQLは無料で使用できるし、レンタルサーバーでも標準でついているところがほとんどなので、まずは利用範囲の広いPHPとMySQLから勉強するといいですね。

今までの「Webアプリ関連」はこちらから読めます。

レンタルサーバは以下を使用しています。

以下のレンタルサーバーも人気のようです。