【ruby on rails】rubyでトラックバックを送信する。

続いてトラックバックの送信を実装してみる。送信にはhttp.rbを使用するんだけど、http.rbがjstringと相性が悪いようで嵌った嵌った。詳しくはこちら
なんとなくそれなりに動くようなので動作確認。hatena,fc2,アメーバは送信できたけどgooとseesaaはエラーになるみたい。なんでだろ。
あと、改行区切りで複数のトラバ先に送信できるようにしておいた。

def send_trackbacks(log)
  require 'net/http'
  Net::HTTP.version_1_2
  unless log.trackback_urls.blank?
    url = url_for(:controller=>'log', :action=>'show', :id=>log.id)
    excerpt = short_text(log.text, 100)
    title = short_text(log.title, 100)
    query = URI.encode("title=" + title + "&url=" + url + "&blog_name=" + $SITENAME + "&excerpt=" + excerpt)
    log.trackback_urls.each_line { |trackback_url|
      trackback_url.chomp!
      if trackback_url.size > 0 && /http[s]?\:\/\/[\w\+\$\;\?\.\%\,\!\#\~\*\/\:\@\&\\\=\_\-]+/n =~ trackback_url
        u = URI.parse(trackback_url)
        Net::HTTP.start(u.host) { | http |
          response = http.post(u.path,query, {'Content-Type'=>'application/x-www-form-urlencoded'})
        }
      end
    }
  end
end

参考
http://hippos-lab.com/blog/node/55
トラックバックを送らせてもらっちゃお。

タグ:[ruby on rails

このログへのコメント(0件)

コメント投稿フォーム

コメント

※半角英数字だけのコメントは投稿できません。

トラックバック

有用(a)

 なるほど

トラックバックURL

関連ログ