2012-11-28 32 views
7

我使用的Bitly寶石(https://github.com/philnash/bitly)爲Bitly API第3版Bitly INVALID_URI - 「500」

而縮短的URL,我得到一個錯誤,當應用程序部署到Heroku。本地縮短工作正常。

def get_short_url(url) 
    Bitly.use_api_version_3 
    bitly = Bitly.new(Settings.bitly.login, Settings.bitly.api_key) 
    result = bitly.shorten(url) ----------------- Line 3 
    result.short_url 
end 

上面代碼中的第3行給出了INVALID_URI - '500'錯誤。

我試圖縮短網址是

"https://rs-4615.xyz.com/users/profile_view/20492083" 

它,當我使用bitly.com縮短罰款。

我無法弄清楚這個問題。誰能幫忙?

Shardul。

+0

你是否在將它傳入**#shorten **之前對它進行編碼?文檔似乎說這意味着鏈接存在問題。也許是雙重編碼。 – jstim

+0

我沒有編碼的網址。 –

+1

如果問題似乎只在heroku上出現,那麼這兩種環境之間有什麼區別?你使用postgres作爲你的本地開發數據庫嗎? heroku的postgres數據庫可能會與你的字符串搞砸嗎? – jstim

回答

11

回答和接受以防萬一別人遇到同一問題。

問題是在我的代碼中生成的URL沒有將「https」協議預先寫入URL並因此失敗。

那麼,究竟是什麼產生了

rs-4615.xyz.com/users/profile_view/20492083 

INSTEAD OF

https://rs-4615.xyz.com/users/profile_view/20492083 - 這是正確的。

@jstim,謝謝你的幫助。

+2

Bit.ly不喜歡的另一件事是如果URL中的主機名是'localhost'。我在我的開發環境中嘗試了這一點,並將主機名更改爲其他內容修復了我的問題。 –

+1

Bit.ly允許'lvh.me'這是很好的B/C將重定向到本地主機。 –