For Tech ·

使用bit.ly的API自动获取短网址

又是一篇软技术文。

装了大波就有了Twitter,有了Twitter不能不用短域名,于是就想着让每个文章发表后自动获取一个bit.ly的短域名,用的api就是昨天咱们建大波时申请的。

原理非常简单,就是一句代码:

http://api.bit.ly/shorten?version=2.0.1&longUrl=$longurl&login=用户名&apiKey=API密钥&format=json&history=1

这是bit.ly的api使用参数,然后我们在自己的theme中加一个函数就可以了。如下

// Bit.ly

function getSmallLink($longurl){
$url = "http://api.bit.ly/shorten?version=2.0.1&longUrl=$longurl&login=用户名&apiKey=API密钥&format=json&history=1";
$s = curl_init();
curl_setopt($s,CURLOPT_URL, $url);
curl_setopt($s,CURLOPT_HEADER,false);
curl_setopt($s,CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($s);
curl_close( $s );
$obj = json_decode($result, true);
return $obj["results"]["$longurl"]["shortUrl"];
}

之后在你想加入自动显示短网址的地方加下调用就行了,我的是这样的:

<div class="bitlink">
<?php $bitlink = get_permalink(); print '本文的短网址是:'.'<a href="'.getSmallLink($bitlink).'">'.getSmallLink($bitlink).'</a>'; ?>

</div>

同时为方便大家RT到Twitter,还可以加入这样一个链接,变成:

<div class="bitlink">
<?php $bitlink = get_permalink(); print '本文的短网址是:'.'<a href="'.getSmallLink($bitlink).'">'.getSmallLink($bitlink).'</a>,如果你喜欢它可以'.'<a href="https://twitter.com/home?status=RT @coolwond : '.get_the_title().' '.getSmallLink($bitlink).'" target="_blank">猛击这里</a>RT到Twitter。';?>
</div>

这样就大功告成了,以后只要发布了新文章或是新页面都会自动生成一个短网址供你和看官们折腾啦。

严重PS:那个函数最好加在模板的function.php文件中,如果模板没有这个文件就加在header.php里面,因为加在wp-includes里的function文件里一更新WP就不好用了。

再次PS:最新消息bit.ly在我折腾出这个文章后的第二天被无情地隔在墙外了。于是我只能换成tr.im继续短域名。方法极其简单,只要把function的一句话改掉就行了,变成这样:

//tr.im

function getSmallLink($longurl){
$url = http://api.tr.im/v1/trim_simple?url=$longurl&username=用户名&password=密码;
$s = curl_init();
curl_setopt($s,CURLOPT_URL, $url);
curl_setopt($s,CURLOPT_HEADER,false);
curl_setopt($s,CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($s);
curl_close( $s );

return $result;
}

一定要把下面的return改成这样子。这个API其实不输入用户名和密码也可以,只是不带用户名和密码就不能在后台显示出你所使用的短域名及点击次数。

参与评论

  • 一米

    这个好,不过我用的是插件。

    9年前 (2009-10-14)
    回复
    回复一米
  • Ivan

    @一米, 尽量少用插件,呵呵,重要的是这个可以自已改服务商,现在bit.ly不能用了在国内。

    9年前 (2009-10-15)
    回复
    回复Ivan
  • Panther

    你这个banner很好看啊

    9年前 (2009-10-13)
    回复
    回复Panther
  • Ivan

    @Panther, 自己瞎攒的。拿了一个桌面,然后把想要的东西贴上去的,哈哈

    9年前 (2009-10-14)
    回复
    回复Ivan
  • 超人

    太折腾了..

    9年前 (2009-10-12)
    回复
    回复超人
  • Ivan

    @超人, 无折腾不生活啊。 :lol:

    9年前 (2009-10-12)
    回复
    回复Ivan
  • Louis Han

    还跑去研究bitly的函数了啊

    短网址一般称作shorturl,不是SmallLink

    9年前 (2009-10-11)
    回复
    回复Louis Han
  • Ivan

    @Louis Han, 昨天刚弄好这个API今天bit.ly就不能访问了,我的天呐,还好tr.im跟它API差不多。

    9年前 (2009-10-12)
    回复
    回复Ivan
  • Louis Han

    @Ivan, 晕,trim也不错,而且StumbleUpon的su.pr也开放API了,跟bit.ly一样也有统计功能,最主要是su.pr很拉风 哈哈

    9年前 (2009-10-12)
    回复
    回复Louis Han
  • Ivan

    @Louis Han, 嘿嘿,怕有的插件起名也是这个,有干扰,所以找了一个大家都不会用的名称

    9年前 (2009-10-11)
    回复
    回复Ivan
  • Louis Han

    @Ivan, 你可以在函数前面加上前缀ganlu_

    9年前 (2009-10-11)
    回复
    回复Louis Han