twitter api是从localhost工作的,但不是来自远程主机

时间:2013-02-26 15:28:31

标签: php twitter

在我的远程虚拟主机上运行以下代码时继续获取failed to open stream

$feed = simplexml_load_string(file_get_contents('http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=kratteteast&count=1'),  'SimpleXMLElement', LIBXML_NOCDATA);

来自localhost每次都有效。

有什么想法吗?

修改:它适用于以相同方式访问的其他2个Feed(新闻(Google)和博客)。

1 个答案:

答案 0 :(得分:0)

Twitter默认支持localhost。在localhost之外,在twitter api中,您必须将域设置为您使用窗口小部件的域。

例如,我这样做了:

* .stewardxpress.com,*。ihnbc.com

您可以包含以逗号分隔的多个域。当您在这些域上使用窗口小部件时,Twitter会识别它。除此之外,它只会识别localhost。

我希望这会对你有所帮助。

修改

我从我的角度运行你的脚本。

$feed = simplexml_load_string(file_get_contents('http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=kratteteast&count=1'),  'SimpleXMLElement', LIBXML_NOCDATA);
           print_r ( $feed ) ;

它返回:

SimpleXMLElement Object ( [@attributes] => Array ( [version] => 2.0 ) [channel] => SimpleXMLElement Object ( [title] => Twitter / KrattetEast [link] => http://twitter.com/KrattetEast [description] => Twitter updates from Tornekrattet Øst / KrattetEast. [language] => en-us [ttl] => 40 [item] => SimpleXMLElement Object ( [title] => KrattetEast: @Erlendnr Kanskje her: http://t.co/mZ05VHkIxz [description] => KrattetEast: @Erlendnr Kanskje her: http://t.co/mZ05VHkIxz [pubDate] => Wed, 27 Feb 2013 14:51:08 +0000 [guid] => http://twitter.com/KrattetEast/statuses/306778498259902464 [link] => http://twitter.com/KrattetEast/statuses/306778498259902464 ) ) )

检查您的PHP安装和配置。查看您的远程服务器是否以任何方式阻止了跨域访问,或者相同的Twitter限制正在发挥作用。我是从localhost测试的。

当我测试遥控器时,我失败了。这就是原因:

file_get_contents(): http:// wrapper is disabled in the server configuration by allow_url_fopen=0

您可以看到服务器中禁用了http://包装器。所以你有一个服务器问题。修复服务器主机。联系管理员。或者您的主要选项是cURL。