Jul 24, 2007

HatenaAuth お試し中

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


Related Info.

Comments

kimitake [Hatena] wrote:

はてな認証後、コメントしてみた。
Posted on Jul 24, 2007 23:49:55

hsur [Hatena] wrote:

ちゃんと動いたみたいで、よかったです。
Posted on Jul 25, 2007 00:56:14

hsur [Hatena] wrote:

> そもそも hsur さんのところでは名前の変更できなくなるのに、自分のところでは編集可のままだし。このあたりは独自に何かしてるのかなぁ?

これですが、JavaScriptでちょっと細工しています。

<p>はてなへのログインを確認しました。<a href="http://d.hatena.ne.jp/<%name%>/about" rel="nofollow"><%name%></a>さん。コメントしてください。(<a href="<%hatena_url%>" rel="nofollow">ログアウト</a>)</p>
<script type="text/javascript">
document.getElementById('nucleus_cf_name').value = '<%name%> [Hatena]';
document.getElementById('nucleus_cf_name').style.background = '#FFFFCC';
document.getElementById('nucleus_cf_name').readOnly = true;
</script>

この部分、標準テンプレートに組み込むのを忘れていました。
あとで配布パッケージを修正しておきます。
Posted on Jul 25, 2007 00:59:47

kimitake [Hatena] wrote:

JavaScript 反映させました。バッチグーです。どもども。
Posted on Jul 25, 2007 01:08:46

hsur [Hatena] wrote:

すいません。いろいろとぼろぼろで。
設定例についてはさしあたってwikiに書いておきました。
Posted on Jul 25, 2007 01:18:19

Add Comments

※下記の単語・フレーズはコメントで使用できません。大文字・小文字は同一視します。
poker, backgammon, tramadol, casino, insurance, loans

OpenID を使ってログインすることができます。

Identity URL:

Trackbacks

トラックバック
このエントリにトラックバックはありません
このトラックバックURLを使ってこの記事にトラックバックを送ることができます。 もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。.
visitor stats