LoginSignup
2
1

More than 5 years have passed since last update.

CakePHP3縛りのハッカソンで新着ツイート通知バッチ作ってみた

Last updated at Posted at 2016-11-28

お疲れ様です。
GMOリサーチの石黒です。

先日「CakePHP3縛りのプライベートハッカソン」に参加させていただき、
1日かけて「新着ツイート通知バッチ」を作りましたので、その様子と作ったものをご紹介します。


① 背景と目的

  • ハッシュタグ付きツイート通知できない問題
    • 勉強会の連絡などを、ハッシュタグ付きツイートで連絡してもらっているのですが、これが通知できたら便利なのになぁと考えていました。
    • 色々調べてはみたのですが、ハッシュタグ付きツイートを通知する方法が分かりませんでした。
  • 「CakePHP3縛りのハッカソンやらない?」
    • やる。

そこで、ツイートを検索した結果を通知してくれるバッチをCakePHP3縛りで作ることにしました。


② やったこと

  • 無料でやった。
  • CakePHP3を使った。
  • PHP7 + Docker→手順忘れて断念、いつも使っているPHP5.6+vagrant環境を使った。
  • メール、Slackへ通知。
  • Bluemix、GAE→PHP5.6のインストールにたどり着けず断念。Herokuを使った。
  • Heroku Scheduler + シェルスクリプトでcronのように常に通知してくれるようにした。
  • Twitter APIと連携(仮実装として1アカウントと連携)

③ 作ったもの

Githubに公開しました。
https://github.com/gr-ishiguro/tweets-notifier

全体像はこんな感じです。
image

  • Heroku Schedulerから10分に1回シェルスクリプトを実行します。(10分、1時間、1日が選べます)
  • シェルスクリプトは1分に1回CakePHPのシェルを実行します。
  • CakepHPのシェル内でTwitter APIを利用して特定のツイートを取得します。(1アカウント180回/15分制限)
  • Slackへの通知は、Incoming WebHooksで生成したURL宛てにcurlでPOSTします。
  • メール通知は、GmailのSmtpサーバを介してメール送信をします。(2,000通/1日制限)

検索APIでは、ハッシュタグだけでなく、感情や位置情報などを検索することも可能なので、
いろいろな使い方が可能です。
それぞれの詳細は追って記事を投稿します。


④ ハッカソンについて

今回、初めてハッカソンというものに参加しました。
ハッカソンと言っても、かなりカジュアルなものです。

  • 会場:知り合いの家
  • 時間:朝から夜まで、休憩を入れて11時間+発表
  • 参加者:4名(1名はSkype参加)

やることは一人で黙々とプログラミング(たまに質問)なのですが、
単に家でやるのとは違い、モチベーションが格段に上がると感じました。
Slackへの通知は、時間終了2分前に完成させることができました。

それにしても、
bakeするだけで管理画面が作れたり、
composerでインストールするだけで機能を利用できたり、
連携設定するだけでAPIが利用できたりと、
無料でこれだけ沢山のことができるという事に改めて感動し、
簡単なアプリならアイデア次第で何でもできそうだと感じた、そんなハッカソンでした。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1