2

我正在开发一个 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 来缩短它。它返回一个字符串,如:

http://goo.gl/xxxxx

我已经测试了 Google API 返回的缩短链接,并且它们存在。所以我再次尝试使用 Facebook:

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

但同样的事情再次发生。

为什么会这样?我尝试使用 goo.gl 缩短一些 Instagram 网址(例如),然后......猜猜怎么着?它适用于脸书!

我真的不明白我的网址有什么问题。

4

1 回答 1

2

您所要做的就是对要作为参数传递的 url 进行编码。

在 javascript 中,您可以使用 encodeURIComponent 来执行此操作。

事实上,由于 URL / URI 规范,您第一次尝试的结果是哈希被视为 facebook 的共享者 url 的参数。

必须对通过 url 传递的不同数据进行“url 编码”。

于 2012-07-22T18:51:37.597 回答