2012-07-22 91 views
2

我開發一個Android的HTML5應用,我想在Facebook上分享一個長的URL,如:Facebook的分享者拒絕goo.gl鏈接

http://api.myserver.com/share.php?鍵= [MD5 HASH]

所以我第一次嘗試:

https://m.facebook.com/sharer.php?u=http://api.myserver.com/share .php?key = [MD5 HASH]

(以長鏈接URL編碼爲參數)但它沒有工作,它說:沒有找到鏈接。

我認爲這可能與包含鏈接的長MD5散列有關,所以我使用goo.gl API來縮短它。它返回像一個字符串:

http://goo.gl/xxxxx

我測試過的縮短的鏈接,谷歌API的回報,他們的存在。 所以我與Facebook再次嘗試:

http://m.facebook.com/sharer.php?u=http://goo.gl/xxxxx

但同樣的事情再次發生。

爲什麼發生?我試圖用goo.gl縮短一些Instagram網址(例如)...猜猜看是什麼?它適用於Facebook!

我真的不明白我的網址有什麼問題。

回答

2

你所要做的就是編碼你想作爲參數傳遞的url。

在javascript中你可以用encodeURIComponent來做到這一點。

實際上,第一次嘗試會發生什麼情況是由於URL/URI規範,散列被視爲Facebook共享者URL的參數。

必須對網址中傳遞的不同數據進行「網址編碼」。

+0

>(將長鏈接URL編碼爲參數)我已經做了。 – 2012-07-22 18:53:09

+0

你試過哪種編碼?你甚至可以通過編碼的URL作爲參數來調用完整的url嗎? – dader 2012-07-22 18:54:15

+0

這是我得到的一行:'var facebookLink ='http://m.facebook.com/sharer.php?u='+ encodeURIComponent(shortLink);' – 2012-07-22 18:55:58