はてなブックマーク Web HookでTwitterに投稿
作ってみた。
titleがtitileになってるので注意直った
twitterへの投稿は、http://d.hatena.ne.jp/hirataka522/20080126/1201300282を参考に
truncate_text関数は、symfonyのhelperから拝借しました。
ベータ版ですが、PEARにServices_Twitterってのもあります。
<?php function truncate_text($text, $length = 30, $truncate_string = '...', $truncate_lastspace = false) { if ($text == '') { return ''; } $mbstring = extension_loaded('mbstring'); if($mbstring) { @mb_internal_encoding(mb_detect_encoding($text)); } $strlen = ($mbstring) ? 'mb_strlen' : 'strlen'; $substr = ($mbstring) ? 'mb_substr' : 'substr'; if ($strlen($text) > $length) { $truncate_text = $substr($text, 0, $length - $strlen($truncate_string)); if ($truncate_lastspace) { $truncate_text = preg_replace('/\s+?(\S+)?$/', '', $truncate_text); } return $truncate_text.$truncate_string; } else { return $text; } } # キーの比較 if ($_POST['key'] != 'xxxxxxxxxxx') die("Authentication failed"); # 追加以外なら終了 if ($_POST['status'] != 'add') return; # エントリーの情報 $b_url = $_POST['url']; $b_title = truncate_text($_POST['title'], 100); # twitterに投稿 $url = 'http://twitter.com/statuses/update.xml?'; $username = 'twitterのユーザ名'; $password = 'twitterのパスワード'; $params = 'status='. rawurlencode('はてブ:' . $b_title . $b_url); $result = file_get_contents($url.$params , false, stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => 'Authorization: Basic '. base64_encode($username. ':'. $password) ) )));