2013-07-10 46 views
0

我正在尝试使用PHP w/Codeigniter框架添加Twitter帐户。
即使在我的日志中,我也没有发现错误。不记名令牌没问题,我直接将其添加到代码中进行测试。使用cURL获取空白页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,假的我得到。

{ “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},”/ trends/closest“:{”limit“:15,”remaining“:15,”reset“:1373460189}}}}

+0

设置'CURLOPT_HEADER =>假,'向我们展示您收到的信息。 –

+0

我的帖子中没有看到任何新内容。 –

+0

在上面查看我的关于CURLOPT_HEADER => false的结果。 – Gee

回答

0

Your Authorization header looks wrong 。要做到这种请求,你需要生成一个签名。有更多的信息在Twitter development site

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

+0

我已经生成了一个签名。我需要获取不记名令牌,因为我使用纯应用程序验证。我的仪表板有312个用户,我需要代表我的用户使用此方法。我能够进行身份验证并获取不记名令牌,现在我正在尝试添加新用户。 – Gee

+0

如果你想添加一个用户,我认为你正在使你的cURL请求到错误的URL – Pattle

+0

其实它正在得到正确的用户。让我添加add.php页面表单,以便您可以看到。 – Gee

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);