久しぶりの記事なうえに、ほとんどhirataka522様のコピーです。
忘れないよう自分用のメモに残しておきます。
Twitterへのつぶやきを行いたいコントローラ、又はapp_controllerに以下のアクション(メソッド)を追加
/** * ツイッターで更新内容をつぶやく * @param string message 140文字以内のメッセージ */ function _twit($message = "") { if (empty($message)) { return false; } // ↓この処理未検証なんですが、140文字を超えたら丸める処理です。動かなかったら修正してください。 if (strlen($message) > 140) { $message = mb_substr($message, 0, 137, "UTF-8")."..."; } $url = "http://twitter.com/statuses/update.xml?"; $username = "ツイッターのID"; $password = "ツイッターのパスワード"; $params = "status=".rawurlencode($message); $httpParams = array( "http" => array( "method" => "POST", "header" => "Authorization: Basic ". base64_encode($username. ":". $password), ), ); $result = file_get_contents($url.$params, false, stream_context_create($httpParams)); return $result; }
あとは使いたいアクションから$this->_twit($message);してあげればOKです。
あまりにも簡単でビックリしました。
こんな簡単な処理で、例えば…
・新着情報の更新処理に$this->twitをはさんで新着をつぶやくとか
・問い合わせがあったときに「現在回答を準備しています…」みたいにつぶやいて、FAQを追加したタイミングで「○○の回答をアップ」しました!とか
・サイトアクセス数の桁が増えたら「閲覧者○○○○○人突破」とか(いらないか別に)
cronを使わなくても色々な事ができそうです。
というより、レンタルサーバなどでcronの使用に制限がある場合は、何かしらのアクションベースでつぶやかせた方が効率的かも。
タイミングも、前回 のつぶやきから○分以上経過していた場合につぶやくようにすればいいですしね。(アクセスがないと困るけど)
参考にさせていただいたhirataka522さん、ありがとうございました。
元記事はPHPでTwitterに投稿 – HIRACCHI H.D.をご覧ください。