I would stay away from external APIs over which you have no control. That will simply introduce a dependency into your application that is a potential point of failure, and could cost you money to use.
CURL can do this quite nicely. Here's how I did it in PHP:
function unshorten_url($url) {
$ch = curl_init($url);
curl_setopt_array($ch, array(
CURLOPT_FOLLOWLOCATION => TRUE, // the magic sauce
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_SSL_VERIFYHOST => FALSE, // suppress certain SSL errors
CURLOPT_SSL_VERIFYPEER => FALSE,
));
curl_exec($ch);
return curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
}
I'm sure this could be adapted to other languages or even scripted with the curl
command on UNIXy systems.
http://jonathonhill.net/2012-05-18/unshorten-urls-with-php-and-curl/
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…