0

几天来,我一直致力于从 v 1 升级到 1.1。我有 100 多个用户在我的仪表板中看不到他们的关注者。我按照所有步骤将 /1/ 更改为 /1.1/ 仍然无法正常工作。

收到错误 404(未找到)控制器:

 function twitter_auth()
  {

 if ( !$this->tweet->logged_in() )
 {
 die('some how you are not logged in');
 }

 $tokens = $this->tweet->get_tokens();

 $this->tweet->enable_debug(TRUE);

 $user = $this->tweet->call('get', 'account/verify_credentials');
 var_dump($user);

 }

 $options = array(
  'count' => 10,
  'page' => 2,
  'include_entities' => 1
  );

  $timeline = $this->tweet->call('get', 'statuses/home_timeline');

 var_dump($timeline);
 }

工作:

 function get_twitter_subscribers($args)
 {
  $rate = @file_get_contents('http://api.twitter.com/1.1/application/rate_limit_status.json');
  $rate = @json_decode($rate);

  if($rate->remaining_hits == 0):
  $status = 'retask';
 else:

  $new_data = @file_get_contents('http://api.twitter.com/1.1/users/show.json?  screen_name='.$args['account_id'].'&include_entities=true');
  $new_data = @json_decode($new_data);
  if(isset($new_data->followers_count)){

  $insert_args = array(
  'account_id' => $args['account_id'],
  'metric' => 'subscribers',
  'value' => $new_data->followers_count,
  'platform' => 'twitter'
   );

   $insert = $this->CI->metrics_model->insert_metric($insert_args);

   if (isset($insert)) { $status = 'complete'; }

    }else{
     $this->send_error_email("Function: get_twitter_subscribers - new_data->followers_count not set for account id: " . $args['account_id'] . "\r\n\r\n" . "args: " . http_build_query($args) . "\r\n\r\n" . 'http://api.twitter.com/1.1/users/show.json?screen_name='.$args['account_id'].'&include_entities=true');
    }

  endif;

   if(!isset($status)){
   $this->send_error_email("Function: get_twitter_subscribers - status not set." . "\r\n\r\n" . "args: " . http_build_query($args) . "\r\n\r\n" .   'http://api.twitter.com/1.1/users/show.json?    screen_name='.$args['account_id'].'&include_entities=true');
   $status = 'error';
   }

   return $status;

控制器:

   function auth($platform)
   {

   if($platform == 'facebook'):
   echo 'auth facebook';
   elseif($platform == 'twitter'):

   $this->load->library('tweet');

   // current key in php page
   $tokens = array(
   'oauth_token' => 'xxxxxxxxxxxxx',
   'oauth_token_secret' => 'xxxxxxxxxxxx'
   );

   $this->tweet->set_tokens($tokens);

   if ( !$this->tweet->logged_in() ) :
   $this->tweet->set_callback(site_url('manage/auth/twitter'));
   $this->tweet->login();
   else:
   echo 'Twitter logged in. <a href="/manage/">Return to manager</a>';
  endif;

  endif;

  }

我究竟做错了什么?

4

1 回答 1

0

此问题已得到解决。我创建了自己的 cURL 库。

 function get_twitter_subscribers($args){
    $request = curl_init();
    $bearer = "AAAAAAAAAAAAAAAAAAAAAJ%2xxxxxxxxxxxxxxx0000x0x0x0x0"; 
    curl_setopt($request, CURLOPT_SSLVERSION, 1);
    curl_setopt($request, CURLOPT_URL, 'https://api.twitter.com/1.1/users/show.json?screen_name='.$args['account_id'].'&include_entities=true');
    curl_setopt($request, CURLOPT_HTTPHEADER, array('Authorization: Bearer '.$bearer));
    curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
    $new_data = json_decode($file_get_contents = curl_exec($request)); 
    curl_close($request);

    if(isset($new_data->followers_count)){
        $insert_args = array(
        'account_id' => $args['account_id'],
        'metric' => 'subscribers',
        'value' => $new_data->followers_count,
        'platform' => 'twitter'
        );

        $insert = $this->CI->metrics_model->insert_metric($insert_args);
    if (isset($insert)) { $status = 'complete'; }
        }else{
        $this->send_error_email("Function: get_twitter_subscribers - new_data->followers_count not set for account id: " . $args['account_id'] . "\r\n\r\n" . "args: " . http_build_query($args) . "\r\n\r\n" . 'https://api.twitter.com/1.1/users/show.json?screen_name='.$args['account_id'].'&include_entities=true');   
    }

  if(!isset($status)){
    $this->send_error_email("Function: get_twitter_subscribers - status not set." . "\r\n\r\n" . "args: " . http_build_query($args) . "\r\n\r\n" . 'http://api.twitter.com/1.1/users/show.json?screen_name='.$args['account_id'].'&include_entities=true');
$status = 'error';
}

   return $status;
}
于 2013-07-17T17:48:11.760 回答