dream518518518 2013-04-12 09:37
浏览 29
已采纳

使用JSONP的PHP Twitter请求

I have created a simple PHP Twitter request that caches the response every 10 minutes. The request code looks like:

$twitter_result = false;

if (file_exists( 'twitter.json' )) {
    $data = json_decode( file_get_contents( 'twitter.json' ));
    if ($data->timestamp > (time() - 10 * 60) ) {
        $twitter_result = $data->twitter_result;
    }
}

if (!$twitter_result) {
    $twitter_result = file_get_contents('http://api.twitter.com/1/statuses/user_timeline.json?q=@SolidCAMUK&rpp=1&screen_name=SolidCAMUK&count=1');
    $data = array ('twitter_result' => $twitter_result, 'timestamp' => time());
    if(file_put_contents( 'twitter.json', json_encode($data) )) {
        //echo 'success';
    } else {
        //echo 'error';
    }
}

$file = file_get_contents('twitter.json');

header("content-type:application/json");
if($_GET['callback']) {
    echo $_GET['callback'] . '(' . $file . ')';
} else {
    echo $file;
}
exit;

And an example of the returned JSONP for this page looks like: http://dev.driz.co.uk/phptwitter/?callback=Test

And then I'm trying to use this JSONP in my test scenario here: http://dev.driz.co.uk/phptwitter/test.php

However the data isn't being displayed properly. I'm guessing that the JSON isn't formatted correctly, as when I console.log the response, it seems to be acting as a string rather than an actual object... Can anyone see any issues?

  • 写回答

1条回答 默认 最新

  • doulianqi3870 2013-04-12 09:50
    关注

    There is nothing wrong with the returned JSON format. It is valid and you can check it here.

    You are doing console.log(response.twitter_result); and that's why you see plain text. If you do console.log(response); you will see the actual returned object.

    The response.twitter_result is an object also but you have to parse it first like this

    success: function(response){
                    var twitter_result = $.parseJSON(response.twitter_result);
    
                    console.log(twitter_result[0].text);
                   //and here you can apply your parseTwitterText() function as you wish
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 pnpm 下载element-plus
  • ¥15 解决编写PyDracula时遇到的问题
  • ¥15 有没有人能解决下这个问题吗,本人不会编程
  • ¥15 plotBAPC画图出错
  • ¥30 关于#opencv#的问题:使用大疆无人机拍摄水稻田间图像,拼接成tif图片,用什么方法可以识别并框选出水稻作物行
  • ¥15 Python卡尔曼滤波融合
  • ¥20 iOS绕地区网络检测
  • ¥15 python验证码滑块图像识别
  • ¥15 根据背景及设计要求撰写设计报告
  • ¥20 能提供一下思路或者代码吗