我正在尝试使用PHP在Twitter上实现自动发布。
但由于twitt的字符限制,我想知道如何使用tinyURL,而不是放置完整的链接,比如http://www.appdropp.com/ios/stone-age-the-board-game/564247778
你看,它很长。。。
我知道以下服务:
- tinyurl.com
- goo.gl
但是,我如何批量使用这些服务,用PHP每天生成数百个链接呢?
注意此方法取决于TinyURL页面结构,该结构可能在不久的将来更改,并且不会大量使用它,或者向他们索取API
你可以用这种方式。
- 对您的url进行编码
使用urlencode - 将您的编码url添加到
$url='http://tinyurl.com/create.php?source=indexpage&url=<encoded url>
- 创建dom对象
$doc=new DomDocuement();
- 加载页面
$doc->loadHTMLFile($url); // this is page containing shorten url
- 抓取包含
shorten url
的节点第二个blockquote
包含缩短url$nodelist=$doc->getElementsByTagName('blockquote');
$blockquote=$nodelist->item(1) // grabbing shorten url blockquote 0:first 1:second
- 现在抓取缩短网址:
$shorten_url=$blockquote->$firstChild->NodeValue
-
随意使用。
有关更多信息,请参阅微小url页面结构
阅读有关DOMDocument的更多信息
对于goo.gl,请阅读:https://developers.google.com/url-shortener
您可以查看Google API,但我不确定有多少容量。我可以为您推荐3种解决方案:
- 使用PHP在主机上创建短链接
- Twitter将如果您直接推特,请缩短您的URL。但是,你做不到使用自动过帐。因此,计算字符数(如
message + URL <= 140
)并将你的自动推文长度控制在140个字符以内 -
你也可以试试这个(查看PHP源代码示例)
函数压缩url($url){$ch=curl_init();curl_setopt($ch,CURLOPT_URL,"http://"."to.ly/api.php?longurl=".urlencode($URL));curl_setopt($ch,CURLOPT_RETURNTTRANSFER,1);curl_setopt($ch,CURLOPT_HEADER,0);$shorturl=curl_exec($ch);curl_close($ch);return$shorturl;}echo压缩机URL("http://twitter.com");//测试