APIを使って短縮URLを取得して表示

  • 投稿
  • 編集

APIを使って短縮URLを取得して表示したくて、

PHPで変数に入れたURLを短縮して受け取る方法を探して以下のAPIが候補に上がった。

  • tinyurl.com ... 特に何かの登録がいるわけではない
  • bit.ly(j.mp) ... ユーザー登録をしてAPIキーを取得する必要あり
  • goo.gl ... 調査中

tinyurl.comを利用した例

<?php
$url1 = "http://tinyurl.com/api-create.php?url=";
$url2 = "http://hoshiya.biz"; //短縮したいURLを入れる
$url3 = $url1.$url2;
$url4 = file_get_contents($url3); //短縮されたURLを取得
echo "<a href=\"".$url2."\">".$url2."</a>が<a href=\"".$url4."\">".$url4."</a>に短縮されました。";
?>

 

参考サイト
Twitter 短縮URL TinyURLのAPI
http://memorva.jp/memo/api/twitter_tinyurl.php

 

bit.ly(j.mp)を利用した例

<?php
//短縮URLを取得する
function shorten_url($url){

$bitly_user = '******'; //bit.lyに登録したユーザー名を入れる
$bitly_apikey = 'xxxxxxxxxxxxxxxxxxxxxxxxxx'; //発行されたAPIキーを入れる

//j.mpを使いたい場合はbit.lyと入替える
$bitlyurl = 'http://api.bit.ly/shorten?version=2.0.1&login='.$bitly_user.'&apiKey='.$bitly_apikey.'&longUrl='.$url;
$context = stream_context_create(array('http' =>
array(
'method' => 'GET',
'timeout' => 5
)
));
$ret = file_get_contents($bitlyurl,false,$context);
if($ret !== FALSE){
$json = json_decode($ret, true);
if($json['statusCode'] == 'OK') {
$surl = $json['results'][urldecode($url)]['shortUrl'];
return $surl;
}
}
return FALSE;
}

$url = "http://hoshiya.biz"; //短縮したいURL

echo "<a href=\"".$url."\">".$url."</a>が<a href=\"".shorten_url($url)."\">".shorten_url($url)."</a>に短縮されました。";
?>

 

参考サイト
twitter/URL短縮する(bit.ly)
http://hodade.adam.ne.jp/itmemo/index.php?twitter%2FURL%C3%BB%BD%CC%A4%B9%A4%EB(bit.ly)