2012-07-01 65 views
0

我试图创建一个简单的小部件来检索用户提要,我已经完全设置我的应用程序与@anywhere一起使用twitter的API的OAuth功能。服务器不从twitter获取状态/ user_timeline信息

我遇到的问题是当我尝试检索用户推文并将它们再次写入文本文件。 我这样做的代码,以便为如下

<?php 

    $cache = dirname(__FILE__) . '/../cache/twitter-json.txt'; 
    $data = file_get_contents('http://api.twitter.com/1/statuses/user_timeline/screen_name.json?count=3&include_rts=true&include_entities=true'); 

    $cachefile = fopen($cache, 'wb'); 
     fwrite($cachefile,utf8_encode($data)); 
     fclose($cachefile); 
?> 

还好现在这个代码的伟大工程,当我在本地运行应用程序,但形成某种原因,当我把它部署到服务器时,它不起作用。 它在服务器上创建缓存文件,并添加任何测试数据以检查文件写入过程是否正常。

我还没有建立它是由我只是用ftp外部公司经营我自己的服务器命令来部署Web应用程序

任何帮助和想法,将不胜感激

回答

0

与检查您的主机 - 出于安全原因,它们几乎肯定不允许使用file_get_contents。

您的选项是

  1. 让他们通过修改php.ini中,以使其能够于allow_url_fopen
  2. 使用cURL拨打电话

这里是在PHP

使用curl一个基本的例子
$url = "http://api.twitter.com/1/statuses/user_timeline/screen_name.json?count=3&include_rts=true&include_entities=true" 
$curl_handle=curl_init(); 
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1); 
curl_setopt($curl_handle,CURLOPT_URL,$url); 
$data = curl_exec($curl_handle); 
curl_close($curl_handle); 
+0

谢谢我在检查任何答案之前就已经这样做了 <?php $ url ='http://api.twitter.com/1/statuses/user_timeline/DOKTRINE.json?count=3&include_rts=true&include_entities=true'; $ path ='../cache/twitter-json.txt'; $ ch = curl_init($ url); curl_setopt($ ch,CURLOPT_RETURNTRANSFER,true); $ data = curl_exec($ ch); curl_close($ ch); file_put_contents($ path,$ data); ?> –