我正在开发一个 Android html5 应用程序,我想在 Facebook 上分享一个长 URL,例如:
http://api.myserver.com/share.php?key=[MD5 HASH]
所以我首先尝试:
https://m.facebook.com/sharer.php?u=http://api.myserver.com/share.php?key=[MD5 HASH]
(将长链接 URL 编码为参数)但它不起作用,它说:找不到链接。
我认为这可能与包含链接的长 MD5 哈希值有关,因此我使用 goo.gl API 来缩短它。它返回一个字符串,例如:
我已经测试了 Google API 返回的缩短链接,它们确实存在。 所以我再次尝试使用 Facebook:
但是同样的事情再次发生。
为什么会发生这种情况?我尝试使用 goo.gl 缩短一些 Instagram 网址(例如),然后...你猜怎么着?它适用于 Facebook !
我不太明白我的网址出了什么问题。
最佳答案
您所要做的就是对要作为参数传递的 URL 进行编码。
在 javascript 中,您可以使用encodeURIComponent 来完成此操作。
事实上,您第一次尝试时发生的情况是,由于 URL/URI 规范,哈希值被视为 facebook 共享者 URL 的参数。
必须对 URL 中传递的不同数据进行“url 编码”。
关于Facebook 分享者拒绝 goo.gl 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11603056/