使用cURL twitter获取空白页面

时间:2013-07-10 12:18:11

标签: php codeigniter curl twitter

我正在尝试使用带有Codeigniter框架的PHP添加Twitter帐户 我得到一个空白页面,甚至在我的日志中都没有错误。持票人令牌没问题,我直接在代码中添加它进行测试。

我做错了什么?任何帮助表示赞赏。谢谢

控制器:manage.php

   if($_POST['platform'] == 'twitter'):

  $request = curl_init();
    $bearer = "AAAAAAAAAAAAAAAAAAAAAJ%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
    curl_setopt($request, CURLOPT_SSLVERSION, 3);
    curl_setopt($request, CURLOPT_URL, 'https://api.twitter.com/1.1/application/rate_limit_status.json');
    curl_setopt($request, CURLOPT_HTTPHEADER, array('Authorization: Bearer '.$bearer));
    curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
    $result = json_decode($content = curl_exec($request));
    curl_close($request);
    return($result);

    if($request == 0):
       $error = 'Sorry, rate limited';
    else:

        $account_data = @file_get_contents('http://api.twitter.com/1.1/users/show.json?screen_name='.$_POST['account_id'].'&include_entities=true');
        $account_data = json_decode($account_data);

    endif;

    if($account_data != false):
        $new_account = array(
            'id' => $account_data->screen_name,
            'username' => $account_data->screen_name,
            'name' => $account_data->name,
            'link' => 'https://twitter.com/'.$account_data->screen_name,
            'picture' => $account_data->profile_image_url,
            'platform' => 'twitter'
        );
    else:
        $error = "Account Not Found";
    endif;

观看次数:add.php

   <?php

   if(isset($error)) echo "<p>".$error."</p>";

echo '<form action="/manage/add" method="post" accept-charset="utf-8" style="margin-left:-15px; margin-top:-15px;">';

echo form_error('account_id');
echo '<strong>'.form_label('Account ID', 'account_id');
echo form_input('account_id', set_value('account_id', ''),'style="width: 288px;"');

    echo form_label('Platform', 'platform');
    echo form_dropdown('platform', $platforms, set_value('platform', $this->input->post('platform')));

$data = array('name' => 'submit', 'value' => 'Add Account', 'class' => 'submit');
echo form_submit($data);
  ?>

   <?php echo form_close(); ?>

当我将它设置为CURLOPT_RETURNTRANSFER时,我得到false。

{ “rate_limit_context”:{ “应用”: “N3KVVzpE8d0qapC6kJJSw”}, “资源”:{ “清单”:{ “/列表/订户”:{ “极限”:15, “剩余的”:15,“复位“:1373460189}”/列表/列表 “:{” 极限 “:15,” 剩余 “:15,” 复位 “:1373460189}”/列表/成员 “:{” 极限 “:15,” 剩余“: 15, “复位”:1373460189}, “/列表/所有制”:{ “极限”:15, “剩余的”:15, “复位”:1373460189}, “/列表/订阅”:{ “极限”:15, “剩余的”:15, “复位”:1373460189}, “/列表/成员”:{ “极限”:15, “剩余的”:15, “复位”:1373460189}, “/列表/订户/显示”:{ “限制”:15, “剩余的”:15, “复位”:1373460189}, “/列表/状态”:{ “极限”:180, “剩余的”:180, “复位”:1373460189},“/列表/节目 “:{” 极限 “:15,” 剩余的 “:15,” 复位 “:1373460189},”/列表/构件/显示 “:{” 极限 “:15,” 剩余的 “:15,” 复位“:1373460189 }}, “应用”:{ “/应用/ rate_limit_status”:{ “极限”:180, “剩余的”:169, “复位”:1373459343}}, “友谊”:{ “/友谊/显示”:{”极限 “:15,” 剩余的 “:15,” 复位 “:1373460189}},” 用户 “:{”/用户/ profile_banner “:{” 极限 “:180,” 剩余的 “:180,”复位 “:1373460189},”/用户/建议/:蛞蝓/成员 “:{” 极限 “:15,” 剩余的 “:15,” 复位 “:1373460189},”/用户/显示/:ID “:{”极限 “:180,” 剩余的 “:180,” 复位 “:1373460189},”/用户/建议 “:{” 极限 “:15,” 剩余的 “:15,” 复位 “:1373460189},”/用户/查找“:{” 极限 “:60,” 剩余的 “:60,” 复位 “:1373460189},”/用户/建议/:蛞蝓 “:{” 极限 “:15,” 剩余的 “:15,” 复位“:1373460189 }}, “跟随者”:{ “/跟踪/列表”:{ “极限”:30 “剩余的” 30 “复位”:1373460189}, “/追随者/ IDS”:{ “极限”:15,”剩余的 “:15,” 复位 “:1373460189}},” 状态 “:{”/状态/显示/:ID “:{” 极限 “:180,” 剩余的 “:180,” 复位 “:1373460189},”/状态/透过oEmbed “:{” 极限 “:180,” 剩余的 “:180,” 复位 “:1373460189},”/状态/ retweeters / IDS “:{” 极限 “:60,” 剩余的 “60”,复位” :1373460189}, “/状态/ user_timeline”:{ “极限”:300, “剩余的”:300, “复位”:1373460189}, “/状态/转推/:ID”:{ “极限”:60“,剩余的“60,” 复位 “:1373460189}},” 帮助 “:{”/帮助/隐私 “:{” 极限 “:15,” 剩余 “:15,” 复位 “:1373460189}”/帮助/ TOS” :{ “极限”:15, “剩余”:15,”复位 “:1373460189}”/帮助/配置 “:{” 极限 “:15,” 剩余 “:15,” 复位 “:1373460189}”/帮助/语言 “:{” 极限 “:15,” 剩余” :15, “复位”:1373460189}}, “朋友”:{ “/朋友/ IDS”:{ “极限”:15, “剩余”:15, “复位”:1373460189} “/朋友/清单”: { “极限”:30 “剩余的” 30 “复位”:1373460189}}, “收藏夹”:{ “/收藏夹/目录”:{ “极限”:15, “剩余的”:15, “复位”: 1373460189}}, “搜索”:{ “/搜索/鸣叫”:{ “极限”:450, “剩余的”:450, “复位”:1373460189}}, “趋势”:{ “/趋势/可用”:{ “限制”:15, “剩余的”:15, “复位”:1373460189}, “/趋势/地点”:{ “极限”:15, “剩余的”:15, “复位”:1373460189},“/趋势/最接近 “:{” 极限 “:15,” 剩余的 “:15,” 复位“:1373460189}}}}

2 个答案:

答案 0 :(得分:0)

您的授权标头看起来有误。要执行此类请求,您需要生成签名。有关Twitter development site

的更多信息

我编写了一个CodeIgniter库,用于向Twitter发出cURL请求。您可能想要使用它或只是从中获取一些代码。存储库为here

答案 1 :(得分:0)

我已经解决了这个问题。

  $request = curl_init();
    $bearer = "AAAAAAAAAAAAAAAAAAAAAJ%2xxxxxxxxxxxxxxx0x0x0x0x0x0x0x0x0x0xxxxxx"; 
    curl_setopt($request, CURLOPT_SSLVERSION, 3);
    curl_setopt($request, CURLOPT_URL, 'https://api.twitter.com/1.1/users/show.json?screen_name='.$account_id.'&include_entities=true');
    curl_setopt($request, CURLOPT_HTTPHEADER, array('Authorization: Bearer '.$bearer));
    curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
    $account_data = json_decode($file_get_contents = curl_exec($request)); 
    curl_close($request);