hsur さん作の NP_HatenaAuth を導入してみた。現在は無事動いているが、デフォルトの状態では動かなかったのでそのメモ。
http://blog.cles.jp/item/2118 でも触れられてるけど結果的には allow_url_fopen が off だったというのが動かなかった理由。php の fopen のマニュアルページによると回避方法などの説明があったので、該当箇所の変更をした。書き換えたファイルは plugins/sharedlibs/Hatena_API_Auth.php で、Hatena_API_Auth クラスの最初の方。fopen を fsockopen で書き換えてある。下記太字の部分が変更点。
var $VERSION = '0.1.0';
var $api_key;
var $secret;
var $json;
var $hatena_host = 'auth.hatena.ne.jp';
var $base_uri = 'http://auth.hatena.ne.jp';
var $auth_path = '/auth';
var $json_path = '/api/auth.json';
function Hatena_API_Auth($api_key, $secret) {
$this->api_key = $api_key;
$this->secret = $secret;
}
function uri_to_login() {
$uri = $this->base_uri . $this->auth_path;<
return $uri . $this->_get_query_string( array(
'api_key' => $this->api_key,
));
}
function login($cert) {
$handle = fsockopen($this->hatena_host, 80, $errno, $errstr, 12);
if (!handle) {
die("Failed to open uri". $uri);
}
$uri = 'GET ' . $this->json_path;
$uri .= $this->_get_query_string( array(
'api_key' => $this->api_key,
'cert' => $cert,
));
$uri .= " HTTP/1.1\r\n";
$uri .= "Host: $this->hatena_host\r\n";
$uri .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$uri .= "Connection: Close\r\n\r\n";
fwrite($handle, $uri);
$contents = '';
while (!feof($handle)) { $contents .= fread($handle, 8192); }
fclose($handle);
list(, $contents) = split("\r\n\r\n", $contents, 2);
$json = $this->_to_json($contents);
return $json;
}
それ以外では、はてな認証後 hsur さんのところでは自分の名前のところが "kimitake [Hatena]" になるんだが、自分のところでは "kimitake" のままで、そのままコメントしようとすると、すでにその名前は使われてるというエラーでコメントできない。そもそも hsur さんのところでは名前の変更できなくなるのに、自分のところでは編集可のままだし。このあたりは独自に何かしてるのかなぁ?
【追記】Wiki
poker, backgammon, tramadol, casino, insurance, loans