dpy83214 2012-10-12 16:41
浏览 11
已采纳

PHP Twitter脚本并不总是有效

I have a PHP script on the site that pulls a twitter feed and displays it. Strangely most of the time it seems to work just fine, but sometimes (quite a lot actually) it doesn't work at all and just displays the follow button.

The code is as follows, obviously USERNAME has the actual twitter account username in:

$widget = true;
$twitterid = "@USERNAME";

$doc = new DOMDocument();

# load the RSS document, edit this line to include your username or user id
if($doc->load('http://twitter.com/statuses/user_timeline/USERNAME.rss')) {

    # specify the number of tweets to display, max is 20
    $max_tweets = 4;    

    $i = 1;
    foreach ($doc->getElementsByTagName('item') as $node) {
        # fetch the title from the RSS feed. 
        # Note: 'pubDate' and 'link' are also useful (I use them in the sidebar of this blog)
        $tweet = $node->getElementsByTagName('title')->item(0)->nodeValue;

        # the title of each tweet starts with "username: " which I want to remove
        $tweet = substr($tweet, stripos($tweet, ':') + 1);   

        # OPTIONAL: turn URLs into links
        $tweet = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', '<a href="$1">$1</a>', $tweet);

        # OPTIONAL: turn @replies into links
        $tweet = preg_replace("/@([0-9a-zA-Z]+)/", "<a href=\"http://twitter.com/$1\">@$1</a>", $tweet);

        echo "<p> <p>".$tweet."</p></p><hr />
";

        if ($i++ >= $max_tweets)
            break;
    }
    echo "</ul>
";
} 

// Here's the Twitter Follow Button Widget
if($widget){
    echo "<a href=\"https://twitter.com/" .$twitterid. "\" class=\"twitter-follow-button\" data-show-count=\"true\">Follow @" .$twitterid. "</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=\"//platform.twitter.com/widgets.js\";fjs.parentNode.insertBefore(js,fjs);}}(document,\"script\",\"twitter-wjs\");</script>";
}
  • 写回答

3条回答 默认 最新

  • douyiyang6317 2012-10-13 11:58
    关注

    Sadly Twitter has removed the URL https://twitter.com/statuses/user_timeline/USERNAME.rss and it now returns Sorry, that page does not exist as of Oct 12 2012. There is a json equivalent however this may fail as well after March 2013. Try https://api.twitter.com/1/statuses/user_timeline.json?screen_name=USERNAME&count=4 for the time being.

    HTH

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启