TumblrRSS

tumblr

カテゴリー

アーカイブ






はてなフォトライフの最近の投稿を取得する


以前から作りたいと思っていた
はてなフォトライフの最近の投稿を取得するスクリプトを書いた。
うちのサーバーはpythonに対応していないので、perlかrubyで書かなければいけないのです
まぁ、perlは昔書いていたからperlにするか、と思ったんですが
MacBookに必要なライブラリが入っておらず
cpanから落としてきたのにライブラリがないとか言われるわけで、もうワケワカラン

なのでruby初挑戦
hello world(一応やりました)とかfizzbuzzでもない
いきなりhttpRequestを送信するコードが書けるものなのか
と思ったら動くモノは出来た。
最近の若者はいきなりこんな風にwebプログラムにさわるのかな?
仕様に沿った作りをすればいいので、xmlrpc同様簡単にできた。
webの情報も多くて理解するのも早く1時間くらいでできた

rubyは思っていたよりも全然よかった。
なるほど、これは書いていてperlよりもスッキリするわ
それとpythonを勉強していたおかげで理解が早かった。あぁ〜、initialize は __init__のことか!とか

次は取得情報を表示するブログパーツを作らんと

同じ事をしているページはたくさんあるのであまり意味ないけど以下ソース

require digest/sha1
require time
require net/http

class HatenaPL
    def initialize(username, password)
        #nonce生成
        nonce =
        while nonce.size < 20
            nonce << rand(256)
        end
        nonce_base64 = [nonce].pack("m").chomp

        createdTime = Time.now.utc.iso8601

        digest = [Digest::SHA1.digest(nonce+createdTime+password)].pack("m").chomp
        @credentials = sprintf(%Q<UsernameToken Username="%s", PasswordDigest="%s", Nonce="%s", Created="%s">,
                     username, digest, nonce_base64, createdTime)
          { X-WSSE => @credentials }
           #print @credentials
    end

    def getRecently()
        uri = f.hatena.ne.jp
        http = Net::HTTP::Get.new("/atom/feed")
        http['X-WSSE'] = @credentials
        res =
        Net::HTTP.start(uri) do |h|
             res += h.request(http).body
        end
    end
end

api = HatenaPL.new("ユーザー名","パスワード")
api.getRecently()



Leave a Reply