【问题标题】:404 not found twitter api 1.1 codeginter404 未找到 twitter api 1.1 codeginter
【发布时间】:2013-06-26 09:51:04
【问题描述】:

几天来,我一直致力于从 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;

  }

我做错了什么?

【问题讨论】:

  • 您正在使用哪个 twitterApi 库?也许你也需要升级它。在 v 1.1 中,您不能只做 $new_data = @file_get_contents('http://api.twitter...,无论您做什么都需要授权。
  • 这是一个自定义构建的应用程序,codeigniter。 auth_token 和 oauth_toaken_secret 用户名和密码存储在数据库中。在升级到 twitter api 1.1 之前一切正常。我没有改变其他任何东西。 $new_data = @file_get_contents('api.twitter.. 这在 twitter api 版本 1 中运行良好,它在 1.1 中发生了变化,我一定遗漏了一些小东西,我检查了整个 twitter 帮助文档,什么都没有。
  • 这个:$this-&gt;load-&gt;library('tweet'),你自己创建tweet库?就像我说的,在 twitter API v1.1 中,您需要授权才能获取所有内容。
  • 它是由以前的开发人员创建的,好的,让我在开发者 Twitter 上查看有关此主题的说明,以获取有关如何执行此操作的说明。
  • dev.twitter.com/blog/changes-coming-to-twitter-api 需要联系之前的开发者。 :D

标签: codeigniter twitter http-status-code-404 getjson dashboard


【解决方案1】:

此问题已解决。我创建了自己的 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-04-14
    • 2023-03-11
    • 1970-01-01
    • 2019-09-09
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多