所以我几乎为我的 Rails 应用程序准备了一个 pingback 发件人(人们发布内容链接并捐赠给他们)。几乎。
我从这里的代码中大量借用:http: //theadmin.org/articles/2007/12/04/mephisto-trackback-library/
为了我的目的,我稍微修改了一下:
require 'net/http'
require 'uri'
class Trackback
@data = { }
def initialize(link_id)
link = Link.find(link_id)
site = Link.website
if link.nil?
raise "Could not find link"
end
if link.created_at.nil?
raise "link not published"
end
@data = {
:title => link.name,
:excerpt => link.description,
:url => "http:://www.MyApp.org/links/#{link.to_param}/donations/new",
:blog_name => "My App"
}
end
def send(trackback_url)
u = URI.parse trackback_url
res = Net::HTTP.start(u.host, u.port) do |http|
http.post(u.request_uri, url_encode(@data), { 'Content-Type' => 'application/x-www-form-urlencoded; charset=utf-8' })
end
RAILS_DEFAULT_LOGGER.info "TRACKBACK: #{trackback_url} returned a response of #{res.code} (#{res.body})"
return res
end
private
def url_encode(data)
return data.map {|k,v| "#{k}=#{v}"}.join('&')
end
end
看起来我正在成功地将链接发送到我的 wordpress 博客,但是当我查看引用上显示的链接时,我得到了这个:http://www.theurl.com/that/my/browser/iscurrentlypointing/at/http:: //www.MyApp.org/links/# {link.to_param}/donations/new"
我想要的只是这长串的后半部分。不知道为什么我的浏览器上的当前位置会偷偷溜进去。
我已经在我的两个博客上尝试过这个,所以它似乎与我的 wordpress 安装无关。
更新:好的,这有点奇怪:我检查了页面源,它显示了正确的链接。但是,当我单击它时,我会被定向到上面提到的奇怪链接。这是一个 Wordpress 问题吗?