我在我的申请中使用了2个案例。在一个案例中,我通过jQuery使用它:
function get_short_url(long_url, login, api_key, func)
{
$.getJSON(
"http://api.bitly.com/v3/shorten?callback=?",
{
"format": "json",
"apiKey": api_key,
"login": login,
"longUrl": long_url
},
function(response)
{
func(response.data.url);
}
);
}
在其他情况下我使用版本1.0.2的bitly gem。为此我要添加
视图:
<%= f.input :link_placeholder, :as => :text, :label => false, :input_html => { :id => 'copy_link', :class => '', :value => "#{get_bitly_url(user_report_url(@user, @report))}", :rows => 2, :cols => 30, :maxlength => 490} %>
控制器:
def show
@report = Report.find(params[:id])
@bitly_url = get_bitly_url("#{user_reports_url}/#{@report.id}")
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @report }
end
end
def get_bitly_url(url)
if Rails.env.development?
return url
else
bitly = Bitly.new('myapp', 'R_e2pd1dca0442a20a2qwqw59156e3260d')
bitly.shorten(url).short_url
end
end
以上2在开发模式和rails生产模式下工作正常,我也尝试在AWS EC2实例中使用Apache和Phusion,它工作得很好 但它不在主生产服务器中工作,其中域名在网址中以“https”提及。
这些是我得到的错误:
Errno :: ECONNRESET(通过对等方重置连接 - SSL_connect):
app / controllers / reports_controller.rb:342:在get_bitly_url'
show'
app/controllers/reports_controller.rb:35:in
show中提到的url来自上面提到的js文件。
请帮我摆脱这个错误。
答案 0 :(得分:1)
错误显示 peer - SSL_connect ,这可能是网络问题。因此,请检查网络中的bitly端口是否已打开。
答案 1 :(得分:0)
通常在服务器损坏时发生。你有没有检查主服务器上的网址是否正确?如果它适用于开发,也应该在生产上工作。祝你好运!