LoginSignup
1
1

More than 5 years have passed since last update.

PHPでTwitter botの習作(2)

Posted at

昨日のギークハウス元住吉用当番おしらせbotを引き続き改良しました。

仕様

  • 8時と22時にcronで巡回して当番に@を飛ばす
  • 日曜日に当番が切り替わる

課題

  • 当番が最後まで行ったら最初に戻る(現状戻らない)
  • 当番を順番等を変更する画面を作りたい
  • セキュリティ対策
  • 指定時間以外はツイートしないようにする

<?php

require_once('twitteroauth/twitteroauth.php');

// config.phpをこっちに書いた
define('CONSUMER_KEY',  // 省略

// OAuthについて。よくわからん
$conn = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);

// 当番順のTwitterアカウント。順番あとで確認
$member = array("@ltd ");

// 週番号で当番の判定。
$week = date('W') % 7;
switch ($week) {
    case '0':
        $duty = 0;
        break;
    case '1':
        $duty = 1;
        break;
    case '2':
        $duty = 2;
        break;
    case '3':
        $duty = 3;
        break;
    case '4':
        $duty = 4;
        break;
    case '5':
        $duty = 5;
        break;
    case '6':
        $duty = 6;
        break;
}

// 次の当番の判定。まだ

// テンプレ。余計なことしたかもしれん。下が読みにくい
$trash = array("普通ごみ", "缶・ペットボトル・びん、ダンボール", "プラスチック製容器包装", "ミックスペーパー", "の収集日です。");
$temp = array("タオルの洗濯をお願いします。", "朝8時までに捨ててください。", "生ごみの回収もお願いします。");

// 曜日で文章を変える
$youbi = date('D'); // 曜日を判定

switch ($youbi) {
    case "Sun":
        $msg = array($temp[0],
            "明日、月曜日は".$trash[1].$trash[4].$temp[0]);
        break;
    case "Mon":
        $msg = array("今日は".$trash[1].$trash[4].$temp[1].$temp[0],
            "明日、火曜日は".$trash[0].$trash[4].$temp[0]);
        break;
    case "Tue":
        $msg = array("今日は".$trash[0].$trash[4].$temp[1].$temp[0],
            "明日、水曜日は".$trash[2].$trash[4].$temp[0]);
        break;
    case "Wed":
        $msg = array("今日は".$trash[2].$trash[4].$temp[1].$temp[0],
            "明日、木曜日は".$trash[0].$trash[4].$temp[0]);
        break;
    case "Thu":
        $msg = array("今日は".$trash[0].$trash[4].$temp[1].$temp[0],
            "明日、金曜日は".$trash[3].$trash[4].$temp[0]);
        break;
    case "Fri":
        $msg = array("今日は".$trash[3].$trash[4].$temp[1].$temp[0],
            "明日、土曜日は".$trash[0].$trash[4].$temp[0]);
        break;
    case "Sat":
        $msg = array("今日は".$trash[0].$trash[4].$temp[1].$temp[0],
            "生ごみの回収とタオルの洗濯をお願いします。1週間お疲れさまでした。".$member[$duty+1]."明日から当番をお願いします。");
        break;
}

// 朝夜の判定。8時と22時にツイート
if (date(G) == 8) {
    $time = 0;
} elseif (date(G) == 22) {
    $time = 1;
}

//test
//echo $member[$duty].$msg[0];

$params = array('status' => $member[$duty].$msg[$time]);

// POST statuses/updateっていうTwitter API
$result = $conn->post('statuses/update', $params);

// TwitterOauth参照
var_dump($result);
1
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
1
1