Help us understand the problem. What is going on with this article?

PHPでTwitter botの習作(3)とりあえず完成

More than 5 years have passed since last update.

ギークハウス元住吉の当番お知らせ用botです。

仕様

  • cronで毎時巡回して8時と22時に当番に@ツイート。それ以外の時間はランダムツイート。
  • 当番は毎週日曜日に交代
bot.php
<?php
// twitteroauth.phpとconfig.phpを読み込む
require_once('twitteroauth/twitteroauth.php'); // onceは循環参照を防ぐ
require_once('config.php');

// クラスのインスタンス化。TwitterOAuthがクラス
$conn = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);

// $members(当番順のTwitterアカウント)はconfig.phpに移動した。
// ファイルから当番を読み込むように書き換える
// ツイートテンプレはconfig.phpに移動

// 当番の判定
$now = new DateTime(); // 現在日時
$duty = $now->format('W') % 7; // 週番号を7人で割って余りで判定。月曜始まり注意。

// 次の当番。6の場合は次を0にする。土日に使う。
if ($duty == 6) {
    $nextDuty = $duty - 6;
} else {
    $nextDuty = $duty + 1;
}

// 曜日で文章を変える
switch ($now->format('D')) {
    case 'Sun':
        $dutyTw = array('@'.$members[$next_duty].' '.$temp[0],
        '@'.$members[$next_duty].' '.'明日、月曜日は'.$trash[1].$temp[3].$temp[0]);
        break;
    case 'Mon':
        $dutyTw = array('@'.$members[$duty].' '.'今日は'.$trash[1].$temp[3].$temp[1].$temp[0],
            '@'.$members[$duty].' '.'明日、火曜日は'.$trash[0].$temp[3].$temp[0]);
        break;
    case 'Tue':
        $dutyTw = array('@'.$members[$duty].' '.'今日は'.$trash[0].$temp[3].$temp[1].$temp[0],
            '@'.$members[$duty].' '.'明日、水曜日は'.$trash[2].$temp[3].$temp[0]);
        break;
    case 'Wed':
        $dutyTw = array('@'.$members[$duty].' '.'今日は'.$trash[2].$temp[3].$temp[1].$temp[0],
            '@'.$members[$duty].' '.'明日、木曜日は'.$trash[0].$temp[3].$temp[0]);
        break;
    case 'Thu':
        $dutyTw = array('@'.$members[$duty].' '.'今日は'.$trash[0].$temp[3].$temp[1].$temp[0],
            '@'.$members[$duty].' '.'明日、金曜日は'.$trash[3].$temp[3].$temp[0]);
        break;
    case 'Fri':
        $dutyTw = array('@'.$members[$duty].' '.'今日は'.$trash[3].$temp[3].$temp[1].$temp[0],
            '@'.$members[$duty].' '.'明日、土曜日は'.$trash[0].$temp[3].$temp[0]);
        break;
    case 'Sat':
        $dutyTw = array('@'.$members[$duty].' '.'今日は'.$trash[0].$temp[3].$temp[1].$temp[0],
            '@'.$members[$duty].' '.'生ごみの回収とタオルの洗濯をお願いします。1週間お疲れさまでした。'.$members[$next_duty].'明日から当番をお願いします。');
        break;
}

// 時間判定
$hour = $now->format('G');
switch ($hour) {
    case '8':
        $msg = $dutyTw[0];
        break;
    case '13':
        $msg = $timeTw[0];
        break;
    case '16':
        $msg = $timeTw[1];
        break;
    case '21':
        $msg = $dutyTw[1];
        break;
    case '23':
        $msg = $timeTw[2];
        break;
    default:
        $msg = $randTw[mt_rand(0, 10)]; // ランダムツイート
        break;
}

// 深夜はツイートしない
if ($hour <= 7) {
    $msg = NULL;
}

// test
//echo $msg;
//echo $msg;
//var_dump($duty);
//var_dump($msg);
var_dump($hour);
/*
// statusに入るのがツイートされる文章
$params = array('status' => $msg);

// TwitterOAuthクラスのpostメソッド?を呼び出す。->はアロー演算子
$result = $conn->post('statuses/update', $params);

// 結果出力
var_dump($result);
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away