シェアする

  • このエントリーをはてなブックマークに追加

[CakePHP][twitter][メモ]データの更新時にTwitterでつぶやく

久しぶりの記事なうえに、ほとんど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.をご覧ください。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする